首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有聚合计数的SQL查询,其中至少有一个计数在字段中有一个值。

具有聚合计数的SQL查询,其中至少有一个计数在字段中有一个值。
EN

Database Administration用户
提问于 2018-07-26 18:20:33
回答 2查看 207关注 0票数 0
代码语言:javascript
运行
复制
SELECT PERSON_ID,COUNT(APPL_ID) COUNTS
FROM APPLICATIONS
GROUP BY PERSON_ID
ORDER BY COUNTS DESC

上面的查询返回所有已申请所有时间的人员(实质上是整个表的计数)。我希望有一项条款,限制今年申请的人,但仍然显示他们所有申请的数量.例如,一个人可能在2018年申请过一次,但他们的申请是申请总数的20倍,因此结果将是相似的。跳过身份证的1,2,4-11。

代码语言:javascript
运行
复制
ID | COUNT
---+------- 
003|     20
---+------- 
012|      4
EN

回答 2

Database Administration用户

回答已采纳

发布于 2018-07-26 18:27:56

我怀疑您可以使用子查询来完成它,比如:

代码语言:javascript
运行
复制
SELECT PERSON_ID, COUNT(APPL_ID) COUNTS
FROM APPLICATIONS
WHERE PERSON_ID IN (
    SELECT DISTINCT PERSON_ID
    FROM APPLICATIONS
    WHERE APPL_DATE > 2018-01-01
)
GROUP BY PERSON_ID
ORDER BY COUNTS DESC
票数 1
EN

Database Administration用户

发布于 2018-07-26 18:57:53

根据索引等,这将提供稍微低一点的I/O:

代码语言:javascript
运行
复制
SELECT PERSON_ID, COUNTS = COUNT(APPL_ID)
FROM dbo.APPLICATIONS
GROUP BY PERSON_ID
HAVING COUNT(CASE WHEN APPL_DATE >= '20180101' THEN 1 ELSE 0 END) >= 1
ORDER BY COUNTS DESC;
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/213339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档