【发布时间】:2021-11-13 22:02:41
【问题描述】:
我有 3 个表,每个表包含 election_id election_year election_type(这是一个 string),party_name(也是一个 string)party_ID,最后一个是 Results_ID(等于election_id)Results_party(等于party_ID)和最后ballots,我的查询必须返回每个政党多年来获得的最大选票数,例如(也是所需的输出):
| Name | Year | Ballots |
|---|---|---|
| Party A | 2000 | 105 |
| Party B | 2000 | 95 |
| Party C | 2004 | 50 |
| Party C | 2008 | 50 |
我试过了
SELECT Party.party_name,Elections.election_year,Results.Results_ballots
FROM ((Elections
INNER JOIN Results
on Elections.election_ID=Results.Results_Elections
AND Elections.election_Type='Regional')
INNER JOIN Party on Party.party_ID=Results.Results_Party)
但这给了我所有政党和所有选票的所有选举,我想要每个选票的最大选票数 任何想法都值得赞赏,我对 MySQL 很陌生
编辑:也试过这个,错过了表格的最后一行
FROM Party as p, Elections as e, Results as r
where p.party_ID=r.Results_Party and e.election_Type='Regional' AND r.Results_Elections=e.Elections_ID
group by p.party_name
原来是这样的
| Name | Year | Ballots |
|---|---|---|
| Party A | 2000 | 105 |
| Party B | 2000 | 95 |
| Party C | 2004 | 50 |
【问题讨论】:
-
请查看文档中的aggregate functions。
-
向我们展示您想要的输出
-
@eshirvana 想要的输出是我在原帖上放的那个
-
@astentx 我确实做到了并且非常接近,但它缺少一个条目,准确地说是原始帖子上的最后一个条目,它属于同一类型,只是不同年份,所以应该采取那些选票数量也相同
-
@Klaudio 你想做2组,
GROUP BY p.party_name, e.election_year