我有类似下面的数据库:如何在使用GROUP BY时获取所有行?
id | col_1 | col_2
------------------
1 | a | x
2 | a | x
3 | b | x
4 | b | z
5 | c | x
我想拿到赛COL_2 = x加COL_1的频率,由频率排序的所有行。例如,输出将是:
id | col_1 | col_2 | freq
-------------------------
1 | a | x | 2
2 | a | x | 2
3 | b | x | 1
5 | c | x | 1
我已经试过各种查询,但因为我使用GROUP BY获得的频率,我无法获得各行(因为我希望每个ID)。例如:
SELECT *, COUNT(col_1) AS freq
FROM mytable WHERE col_2 = x
GROUP BY col_1
ORDER BY freq DESC
不幸的是,这并没有给我所有的行。它留下id = 2。任何帮助将不胜感激!
谢谢!
@jeremytwfortune我们不知道OP需要什么,也许他需要在网格中显示结果。但是,你可以有相同的计数()结果 –
OP明确表示他希望在输出中有'id'。你的解决方案不会这样做。 –
@jeremytwfortune,OP确实提供了清晰显示'id'和'count'的所需输出。一起。这才是重点。它不仅仅是一个简单的“分组”。 –