在不使用Max()/ Greatest()函数的情况下查找最大组值

时间:2013-04-19 07:10:40

标签: sql group-by max

我一直试图这样做几个小时,但我一直得到一个空结果。到目前为止,我通过运行查询得到了下表

select count(posts) from dbtable group by user

user | posts
_____________
a   |   3
b   |   7
c   |   2
d   |   1
e   |   1

如何在不使用max()/ great()甚至LIMIT功能的情况下显示具有最大帖子的用户。我运行上述查询的原始表有一个所有帖子的列表以及提交每个帖子的用户,我只是将它们分组。

2 个答案:

答案 0 :(得分:2)

select * from 
(
select user,count(posts) cnt from dbtable 
group by user
) t1
left join 
(
select user,count(posts) cnt from dbtable 
group by user
) t2 on (t1.user<>t2.user) and (t1.cnt<t2.cnt)

where t2.cnt is null  

SQLFiddle demo

答案 1 :(得分:0)

这是另一个有效的解决方案,但是对于更大的表来说非常慢。我用一小组48个条目测试它并且它足够快,但是在具有200.000个记录的表上它运行了几个小时而没有完成: )

select *
from
(
    select distinct column
    from table t0
    join table t1 on t0.key = t1.key
    where t0.column > t1.column
    order by t0.column desc
)
where rownum <= 1
;