You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL按taluk_code和taluk_name分组统计总数与过期数

PostgreSQL合并分组统计查询:同时计算许可证总数与过期数量

你可以通过条件聚合来合并两个查询,只需要一次表扫描就能得到所需的统计结果,比分别查询再关联的效率更高。核心思路是在分组统计时,用COUNT计算总数,用CASE语句配合SUM筛选出过期的记录并计数。

合并后的完整查询

SELECT
    l.taluk_code,
    t.taluk_name,
    COUNT(l.serial_number) AS total,
    SUM(CASE WHEN l.validity_to <= NOW() THEN 1 ELSE 0 END) AS ExpiryCount
FROM
    license_register l
INNER JOIN taluk t ON l.taluk_code = t.taluk_code
WHERE
    l.rev_district_code = '17'
GROUP BY
    l.taluk_code, t.taluk_name;

逻辑说明

  • COUNT(l.serial_number):统计符合rev_district_code='17'的所有许可证总数(和你原来的总数查询逻辑一致)。
  • SUM(CASE WHEN l.validity_to <= NOW() THEN 1 ELSE 0 END):对每条记录判断是否过期,过期则计1,否则计0,最后求和得到过期许可证的数量(替代原来单独的过期统计查询)。
  • 改用显式INNER JOIN替代隐式连接语法,让查询逻辑更清晰易读。

这个查询会直接输出包含taluk_code、taluk_name、total、ExpiryCount的结果集,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Meenatchi P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:50:54