【发布时间】:2019-05-20 03:46:42
【问题描述】:
【问题讨论】:
-
做一个
GROUP BY。使用case表达式进行条件聚合! -
你能给我举个例子吗?
-
平心而论,如果不可能的话,sql的用处会很有限
【问题讨论】:
GROUP BY。使用case表达式进行条件聚合!
您可以使用条件聚合:
select customer,
sum( status = 'Disposed' ) as num_disposed,
sum( status = 'Transported' ) as num_transported
from t
group by customer;
MySQL 将布尔表达式视为数字上下文中的整数,0 表示假,1 表示真。因此,将布尔值相加是一种计算符合条件的行数的简单方法。
【讨论】:
您可以在 case ansum 上使用 group by
select customer, sum(case when status ='disposed' then 1 else 0 end) count_disposed
sum(case when status ='trasposed' then 1 else 0 end) count_trasposed
from my_table
group by customer
【讨论】: