我有一个表如下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