db2 SQL -根据最大列计数返回列值

vsdwdz23  于 2023-01-09  发布在  DB2
关注(0)|答案(1)|浏览(173)

我有一个SQL查询,我可以在那里查找一列的最大出现次数。它对我所需要的工作很好,但现在需要在此基础上展开,只返回列的名称。
可能有一种方法可以改进我的原始查询,但我还没有能够解决它。

select COMMUNITY_AREA_NUMBER, count(*) as CRIMES
    from CHICAGO_CRIME_DATA
    group by COMMUNITY_AREA_NUMBER
    order by CRIMES desc
    limit 1

我的基本问题是,如何重写它以只返回COMMUNITY_AREA_NUMBER?
我试着重组为:

select COMMUNITY_AREA_NUMBER from CHICAGO_CRIME_DATA
    where count(*) as CRIMES group by COMMUNITY_AREA_NUMBER order by CRIMES desc limit 1

我也尝试过加入MAX函数,但似乎没有任何进展。
编辑:显然,我刚刚学习了一些内部查询。我需要保留我的原始查询,并创建一个外部查询,从结果中请求一些东西。

select COMMUNITY_AREA_NUMBER from
    (select COMMUNITY_AREA_NUMBER, count(*) as CRIMES
    from CHICAGO_CRIME_DATA
group by COMMUNITY_AREA_NUMBER
order by CRIMES desc
limit 1)
hi3rlvi2

hi3rlvi21#

这就是你想要的吗?

SELECT COMMUNITY_AREA_NUMBER
FROM CHICAGO_CRIME_DATA
GROUP BY COMMUNITY_AREA_NUMBER
ORDER BY COUNT(*) DESC
LIMIT 1;

这将返回一个犯罪记录最多的社区号码,我只是将COUNT(*)从select子句(您不需要它的地方)移到了ORDER BY子句。

相关问题