我有这样的数据,
KOD Voucher
1 10
2 2
3 11
4 5
5 23
6 1
7 23
我只想要结果就像这样
< 10 = 3
> 10 = 4
如何在sql中执行此操作?
答案 0 :(得分:3)
试试这个:
SELECT
SUM(CASE WHEN voucher < 10 THEN 1 ELSE 0 END) AS "< 10",
SUM(CASE WHEN voucher > 10 THEN 1 ELSE 0 END) AS "> 10"
FROM table;
但是对于那些> 10
:
< 10 > 10
3 3
您必须使用谓词>=
为> 10
获取4个值,因为10不是> 10
也不是< 10
。
答案 1 :(得分:1)
SELECT COUNT(1) AS "< 10"
FROM myTable
WHERE Voucher < 10
SELECT COUNT(1) AS ">= 10"
FROM myTable
WHERE Voucher >= 10
答案 2 :(得分:0)
以行格式
select case when voucher<10 then '< 10' else '>= 10' end breakdown,
count(1) total
from tbl
group by case when voucher<10 then '< 10' else '>= 10' end;
结果:
breakdown | total
< 10 | 3
>= 10 | 4
以列形式
select count(case when voucher<10 then 1 end) [< 10],
count(case when voucher>=10 then 1 end) [>= 10]
from tbl;
结果:
< 10 | >= 10
3 | 4
答案 3 :(得分:0)
select '< 10 = '+cast(count(KOD) as Varchar(100)) from t where Voucher<10
union
select '> 10 = '+cast(count(KOD) as Varchar(100)) from t where Voucher>=10