gpt4 book ai didi

mysql - mysql中的sum函数和count函数

转载 作者:行者123 更新时间:2023-11-30 21:51:23 25 4
gpt4 key购买 nike

我有一个与计数函数和求和函数相关的 SQL 查询问题。

我得到一个数据有两列,一列是tasker_id,另一列是hire(“1”被录用,“0”不是),同一个ID可以被多次录用,数据如下:

Takser_ID     hire
1 1
2 0
1 1
3 0
4 1
2 1
1 1
5 0
3 0
2 1
8 0
...

由于 hire 的值是 0 和 1,所以如果我想知道每个 tasker_ID 被雇佣了多少次,使用 count() 函数或 Sum() 函数应该会得到相同的答案。SQL 查询如下所示:

对于计数():

select tasker_id, count(hired) as count_hired
from test.test
group by tasker_id
order by count_hired;

对于 Sum():

select tasker_id, sum(hired) as sum_hired
from test.test
group by tasker_id
order by sum_hired;

然而,结果却截然不同。从结果来看,sum 函数似乎是正确的,因为我可以得到一些实际雇用了 0 人的 Tasker_ID 用户。但是,对于 count() 函数,没有雇用 0 的情况,结果似乎有线。

有没有人可以帮我解决这个问题?怎么了???

谢谢!!

最佳答案

count 简单地计算你的行中非空值的数量

因此在您的情况下,您的计数正好是与您的 tasker_id 相关的行数

如果你有 null 而不是 0,你可能会有一个正确的计数结果

您还可以使用 case 的总和来获得一个值,例如:

select 
tasker_id
, sum(hired) as sum_hired
, sum(case when hired= 0 then 1 else 0 end ) not_hired_count
from test.test
group by tasker_id
order by sum_hired;

关于mysql - mysql中的sum函数和count函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47124824/

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