[英]GROUP BY a CONCAT and another column SQL
我是新来的,如有错误请见谅。 我在中学尝试了一道测试题,我对 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;
您可以在JOIN
表格之前对投票进行COUNT
,并使用GROUP_CONCAT
将所有名称和计数连接在一起
SELECT v.state, GROUP_CONCAT(CONCAT(fname,' ',lname,' x ',v.count_) ORDER BY v.ID) FROM candidates c INNER JOIN (SELECT `ID`, `STATE`, COUNT(*) count_ FROM votes GROUP BY `ID`, `STATE`) v ON c.ID = v.ID GROUP BY v.state
状态 | GROUP_CONCAT(CONCAT(fname,' ',lname,' x ',v.count_) ORDER BY v.ID) :-------- | :------------------------------------------------ ---------------- 阿拉巴马 | 可可甜瓜 x 2,红柄 x 1 德州 | OPTI PRIME x 1,BUGS 兔子 x 1
db<> 在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.