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

PostgreSQL单查询同时获取筛选采购订单及全表email计数方法

单查询实现方案

可以通过单条PostgreSQL语句实现需求,以下是两种适配不同场景的写法:

写法1:嵌入子查询(最简洁)

直接将全表计数作为查询字段返回,结果每行都会携带全表的email总计数,若全表email计数≤1时,cnt_email字段返回NULL:

SELECT
    name,
    email,
    (SELECT COUNT(email) FROM purchase_orders HAVING COUNT(email) > 1) AS cnt_email
FROM purchase_orders
WHERE shipment_status > 5 AND shipment_status < 25
ORDER BY name;

写法2:CTE+关联(和原有拆分查询逻辑完全对齐)

如果要求全表email计数≤1时整个查询无返回结果,可以用这种写法,和你之前拆分两条查询的逻辑完全一致:

WITH global_email_stat AS (
    -- 全表统计,仅计数>1时返回结果
    SELECT COUNT(email) AS cnt_email
    FROM purchase_orders
    HAVING COUNT(email) > 1
)
SELECT
    po.name,
    po.email,
    ges.cnt_email
FROM purchase_orders po
CROSS JOIN global_email_stat ges
WHERE po.shipment_status > 5 AND po.shipment_status < 25
ORDER BY po.name;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:04