我有一個表如下mysql的最大計數
id qNum opNum
1 1 3
2 1 3
3 1 2
4 1 1
5 2 4
6 2 4
7 2 4
8 2 1
我需要通過qNum然後opNum分組計數,這是細做,但我只想要回qNum和在每個分組
與最大計數記錄opNum所以我非常需要一個記錄,看起來像
qNum opNum maxCount
1 3 2
2 4 3
幫助將不勝感激!
我有一個表如下mysql的最大計數
id qNum opNum
1 1 3
2 1 3
3 1 2
4 1 1
5 2 4
6 2 4
7 2 4
8 2 1
我需要通過qNum然後opNum分組計數,這是細做,但我只想要回qNum和在每個分組
與最大計數記錄opNum所以我非常需要一個記錄,看起來像
qNum opNum maxCount
1 3 2
2 4 3
幫助將不勝感激!
雖然這並不十分好看,我認爲它達到你想要的結果:
select y.qnum, y.opnum, maxcnt
from (
select qnum, opnum, count(*) cnt
from yourtable
group by qnum, opnum
) y
join (
select qnum, max(cnt) maxcnt
from (
select qnum, opnum, count(*) cnt
from yourtable
group by qnum, opnum) t
group by qnum
) t on y.qnum = t.qnum and y.cnt = t.maxcnt
簡單的解決方案可能是:
SELECT qNum, opNum, MAX(temp.maxcount) AS maxcount FROM(
SELECT qNum, opNum, COUNT(*) AS maxCount
FROM t
GROUP BY opNum, qNum ORDER BY maxcount DESC
) AS temp GROUP BY qNum
這可能會導致在最終輸出中出現錯誤的opnum – Dave
我通過增加一個分組來修復它 –
'SELECT COUNT (*)...通過qnum,opnum'分組? –
當你在每個組中說,你的意思是在每一組'qNum'? – sgeddes
我希望在每個qNum內都有最重要的opnum – Dave