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