繁体   English   中英

如何在oracle中找到重复次数最多的数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM