我有一個MySQL表:在MySQL中如何使用case語句重寫查詢?
create table tbl (
amount int
);
insert into tbl (amount) values (1);
insert into tbl (amount) values (2);
insert into tbl (amount) values (3);
insert into tbl (amount) values (4);
我的目標是多少值都在下面的水桶,使用情況statment報告。
桶答:值0-1
桶B:值2-5
鬥C:值6-9
首先讓我們嘗試一個簡單的查詢:
select "Bucket A" as Bucket, count(amount) "Count"
from tbl
where amount in (0,1)
union
select "Bucket B" as Bucket, count(amount) "Count"
from tbl
where amount in (2,3,4,5)
union
select "Bucket C" as Bucket, count(amount) "Count"
from tbl
where amount in (6,7,8,9);
結果:
+----------+-------+
| Bucket | Count |
+----------+-------+
| Bucket A | 1 |
| Bucket B | 3 |
| Bucket C | 0 |
+----------+-------+
結果是完美的,但我想要一個案例聲明。
所以我試試這個:
select
sum(case when amount in (0,1) then 1 else 0 end) as "Bucket A",
sum(case when amount in (2,3,4,5) then 1 else 0 end) as "Bucket B",
sum(case when amount in (6,7,8,9) then 1 else 0 end) as "Bucket C"
from tbl;
結果:
+----------+----------+----------+
| Bucket A | Bucket B | Bucket C |
+----------+----------+----------+
| 1 | 3 | 0 |
+----------+----------+----------+
值是正確的,和偉大的,我有一個case語句,但問題是價值觀得到了轉動。
我該如何才能
1.使用案例陳述
2.沒有支點?
有什麼方法來確定其編程鬥具有'amount',或者你只是去與這些價值觀? –
我想我需要用我在問題中提供的值。 – davidjhp