我是新来的,如果我有什么错误请原谅。我在中学的时候试过一个测试题,我不太擅长SQL,所以我有点困惑。任何帮助都是感激不尽的,非常感谢。
表候选人:
ID FNAME LNAME
1 1 COCO MELON
2 2 RED SHANKS
3 3 OPTI PRIME
4 4 BUGS BUNNY
表投票:
ID STATE
1 1 ALABAMA
2 1 ALABAMA
3 2 ALABAMA
4 3 TEXAS
5 4 TEXAS
预期的输出应该是这样的:
STATE VOTES
1 ALABAMA COCO MELON x 2, RED SHANKS x 1
2 TEXAS OPTI PRIME x 1, BUGS BUNNY x 1
我用了CONCAT,我设法按名字分组。但是,状态不会跟随。它只是不想分组。我错过了什么吗?谢谢你的帮助。这是我做的代码。
SELECT v.state, CONCAT(fname,' ',lname,' x ',COUNT(v.state))
FROM candidates c
INNER JOIN votes v ON v.id = c.id
GROUP BY v.state, c.fname, c.lname;
1条答案
按热度按时间t2a7ltrp1#
您可以先
COUNT
投票,然后再JOIN
表格,并使用GROUP_CONCAT
将所有姓名和计数连接在一起第一个