このようなデータがありますが、
KOD Voucher
1 10
2 2
3 11
4 5
5 23
6 1
7 23
私はちょうど結果がこのようなものであることを望みます
< 10 = 3
> 10 = 4
SQLでそれを行う方法は?
このようなデータがありますが、
KOD Voucher
1 10
2 2
3 11
4 5
5 23
6 1
7 23
私はちょうど結果がこのようなものであることを望みます
< 10 = 3
> 10 = 4
SQLでそれを行う方法は?
これを試して:
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;
ただし、これにより、次の場合は3つしか得られません> 10
。
< 10 > 10
3 3
述語を使用して、10 not nor>=
の 4 つの値を取得する必要があります。> 10
> 10
< 10
SELECT COUNT(1) AS "< 10"
FROM myTable
WHERE Voucher < 10
SELECT COUNT(1) AS ">= 10"
FROM myTable
WHERE Voucher >= 10
列形式で
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
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