SELECT查询,一次显示每个记录的名称和实例数

时间:2019-05-19 19:42:34

标签: mysql sql select

是否可以编写一个SELECT查询来显示每个记录的名称一次,以及对于某些条件该记录的实例个数?

例如,如果我有一个包含以下记录的表:

enter image description here

如何获取SELECT查询以显示以下内容:

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用条件聚合:

select customer,
       sum( status = 'Disposed' ) as num_disposed,
       sum( status = 'Transported' ) as num_transported
from t
group by customer;

MySQL在数字上下文中将布尔表达式视为整数,其中0表示false,1表示true。因此,仅将布尔值加起来是一种简单的方法即可计算出符合条件的行数。

答案 1 :(得分:0)

您可以将case ansum用作分组

 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