gpt4 book ai didi

mysql - 如何通过主键获取列组中唯一值的计数

转载 作者:行者123 更新时间:2023-11-29 08:22:01 26 4
gpt4 key购买 nike

我是 sql 新手,我手头有这个问题。我有一个表 temp,其列有 id 和 flag。

ID FLAG               
-- ----
A 1
A 1
A 0
B 1
B 0
B 0
C 0
C 0
C 0

我需要每个 ID 的 1 和 0 计数。

所需的输出是

ID    OnesCount    ZerosCount
--- --------- ----------
A 2 1
B 1 2
C 0 3

我尝试了很多,我可以通过以下方式单独获取它们

select id,count(*) ZerosCount from temp where flag = 0 group by id

select id,count(*) OnesCount from temp where flag = 1 group by id

但不明白如何加入并获得所需的输出。有人可以帮忙吗

最佳答案

在这种特定情况下,您可以这样做:

select customer_id ID, 
sum(pwr_flag) OnesCount,
sum(1-pwr_flag) ZerosCount
from temp_pwr
group by customer_id

在更通用的情况下,您可以使用case when:

select customer_id ID, 
sum(case pwr_flag when 1 then 1 else 0 end) OnesCount,
sum(case pwr_flag when 0 then 1 else 0 end) ZerosCount
sum(case pwr_flag when 17 then 1 else 0 end) SeventeensCount
from temp_pwr
group by customer_id

关于mysql - 如何通过主键获取列组中唯一值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092883/

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