我有一张 table ,上面有重复的 X 和 Y 对:
------------------------
ID | X | Y
------------------------
1 10 20
2 20 10
3 10 20
4 30 20
5 20 10
6 20 10
我想像这样计算相同 (X,Y)
对的频率:
--------------------------
X | Y | COUNT
--------------------------
20 10 3
10 20 2
30 20 1
这是我尝试做的:
SELECT X,
Y,
COUNT(DISTINCT X, Y) AS FREQUENCY
FROM `ordini`
GROUP BY X, Y
ORDER BY `FREQUENCY` DESC
但结果不是我所期望的:对于所有夫妇,返回的 FREQUENCY 都是 1。
我哪里错了?
最佳答案
不要使用此 COUNT(DISTINCT X, Y)
因为 DISTINCT
会删除所有相同的记录,并且您将获得相同 X,Y 的单个值,这就是为什么您得到 1
SELECT X,
Y,
COUNT(*) AS FREQUENCY
FROM ordini
GROUP BY X, Y
ORDER BY FREQUENCY DESC
现场演示
关于MySQL - 获取两个字段中出现的一对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49425152/