gpt4 book ai didi

MySQL查询以获取范围内的计数

转载 作者:搜寻专家 更新时间:2023-10-30 22:30:02 25 4
gpt4 key购买 nike

我的数据库快照

enter image description here

我想获取指定范围内出现的 pcl_No 的计数(SUM(tv_land + tv_imp))

我已经写了一个查询,但是我得到了 Invalid use of group 错误

select
count(CASE WHEN sum(tv_land+tv_imp) BETWEEN 0 AND 10000 THEN 1 END) as count0_10000
from
tax_l2006
where red_date = 0
GROUP BY pcl_no

示例输出
0-10000 10000-20000 30000-40000 >40000
2 3 1 8

最佳答案

我想你只是想:

select count(CASE WHEN tv_land + tv_imp BETWEEN 0 AND 10000 THEN 1 END) as count0_10000
from tax_l2006
where red_date = 0;

我会在 MySQL 中更简单地写成:

select sum( (tv_land + tv_imp) between 0 and 10000 ) as count0_10000
from tax_l2006
where red_date = 0;

MySQL 在数字上下文中将真 bool 值视为“1”,将假值视为“0”,因此对 bool 值求和就是计算它为真的次数。

您可以对其余列采用相同的模式。

如果 pcl_no 不是唯一的并且您需要对值求和,那么您可以使用子查询:

select sum(total between 0 and 10000) as count0_10000
from (select pcl_no, sum(tv_land + tv_imp) as total
from tax_l2006
where red_date = 0
group by pcl_no
) p;

但是,您的数据表明该列是唯一的,因此不需要额外的聚合。

关于MySQL查询以获取范围内的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521939/

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