gpt4 book ai didi

mysql - 一个 SQL 查询来计算不同条件下的记录

转载 作者:行者123 更新时间:2023-11-30 22:50:10 28 4
gpt4 key购买 nike

如何在一次查询中统计participants表的总记录数、唯一用户数和状态为2的记录数?

我知道如何使用 3 个单独的查询来完成此操作:从参与者中选择 COUNT()SELECT COUNT() FROM 参与者 GROUP BY 用户SELECT COUNT(*) FROM participants WHERE status = 2

但这似乎真的没有效率?

参与者

id         user           status 
10 john@example.com 1
11 john@example.com 1
12 john@example.com 1
13 sally@mailing.com 1
14 sally@mailing.com 2
15 edward@halloworld.com 1
16 edward@halloworld.com 1
17 edward@halloworld.com 2
18 mike@bestmail.net 2
19 mike@bestmail.net 1
29 nat@worldcom.com 0

最佳答案

只需使用条件聚合:

select count(*) as numrecords, count(distinct user) as numusers,
sum(status = 2) as numstatus_2
from participants p;

关于mysql - 一个 SQL 查询来计算不同条件下的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388582/

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