Запрос SELECT, который отображает имя каждой записи один раз и количество экземпляров - PullRequest
0 голосов
/ 19 мая 2019

Можно ли написать запрос SELECT, который отображает имя каждой записи один раз и количество экземпляров этой записи для определенных критериев?

Например, если у меня естьтаблица со следующими записями:

enter image description here

Как получить запрос SELECT для отображения следующего:

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

вы можете использовать группу по case ansum для case

 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
0 голосов
/ 19 мая 2019

Вы можете использовать условное агрегирование:

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

MySQL обрабатывает логические выражения как целые числа в числовом контексте, где 0 для false и 1 для true. Таким образом, просто сложение логического значения - это простой способ подсчитать количество строк, соответствующих условию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...