[英]How to find the most repeat data in oracle?
我有一个TRANSACTION表。 列是=
人员编号和人员名称
我想找到最重复的数据排序。 我该怎么办? 我已经尝试过,但发现了最重复的结果,但是我无法显示personal_name。
这是我的查询;
SELECT PERSONNEL_ID,
COUNT(PERSONNEL_ID)
FROM KOMTAS.TRANSACTIONS
GROUP BY PERSONNEL_ID;
并且此代码给出了错误;
SELECT MAX(R),
PERSONNEL_ID
FROM ( SELECT PERSONNEL_ID,
COUNT(PERSONNEL_ID) R
FROM KOMTAS.TRANSACTIONS
GROUP BY PERSONNEL_ID
) ;
请帮助 !
在第二个查询中添加第二个分组依据:
SELECT MAX(R),
PERSONNEL_ID
FROM ( SELECT PERSONNEL_ID,
COUNT(PERSONNEL_ID) R
FROM KOMTAS.TRANSACTIONS
GROUP BY PERSONNEL_ID )
GROUP BY PERSONNEL_ID;
我建议使用rownum
和一个子查询:
SELECT t.*
FROM (SELECT PERSONNEL_ID, COUNT(PERSONNEL_ID) as cnt
FROM KOMTAS.TRANSACTIONS
GROUP BY PERSONNEL_ID
ORDER BY COUNT(PERSONNEL_ID) DESC
) t
WHERE rownum = 1;
尝试这个
SELECT MAX(cnt) AS c, PersonId FROM ( SELECT PersonId, COUNT(PersonId) cnt FROM TRANSACTIONS GROUP BY PersonId ) GROUP BY PersonId ORDER BY c DESC;
在这里检查SQLFiddle
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.