gpt4 book ai didi

sql - 获取 GROUP BY 记录子集的计数

转载 作者:行者123 更新时间:2023-12-02 20:30:11 24 4
gpt4 key购买 nike

我有一个邮件分类帐表,我正在尝试查询它的返回百分比。我正在执行 GROUP BY 以根据 order_no、county 和 zip_code 获取唯一记录。

SELECT, COUNT(*) as TotalMailed, COUNT(*) (WHERE Returned = 1) as ReturnedMailed, Order_No, Zip_Code,County
FROM MailLedger
GROUP BY Order_No, Zip_Code, County

我正在获取每个记录分组的正确计数,但是我需要获取“Returned”设置为 true 的分组记录子集的计数。

我正在运行 SQL Server,因此我确实可以使用 OVER 和 PARTITION,但是,我也很想知道在 Postgres/MySQL 中处理它的正确方法。

最佳答案

在 SQL Server 中,您可以使用条件聚合。我通常使用 SUM(CASE . . . ) 来执行此操作:

SELECT COUNT(*) as TotalMailed,
SUM(CASE WHEN Returned = 1 THEN 1 ELSE 0 END) as ReturnedMailed,
Order_No, Zip_Code, County
FROM MailLedger
GROUP BY Order_No, Zip_Code, County;

如果Returned只接受1和0/NULL的值,那么你可以这样做:

SELECT COUNT(*) as TotalMailed,
SUM(Returned) as ReturnedMailed,
Order_No, Zip_Code, County
FROM MailLedger
GROUP BY Order_No, Zip_Code, County;

关于sql - 获取 GROUP BY 记录子集的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49020605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com