Сгруппировать и подсчитать общее количество одинаковых значений статуса - PullRequest
2 голосов
/ 05 июня 2019

У меня 2 стола, Заказ и Магазин. А вот некоторые поля из таблицы, которые мне нужны.

Стол заказов

  OrderId StoreId SystemOrderStatus
     1       1        Received
     2       1        Sent
     3       2        Complete
     4       2        Received

Как мне добиться этого результата:

StoreId ReceivedStatusCount SentStatusCount CompleteStatusCount
     1            1                1                0
     2            1                0                1

Спасибо.

1 Ответ

2 голосов
/ 05 июня 2019

Просто используйте case when, как удар:

select
    StoreId,
    sum(case when SystemOrderStatus='Received' then 1 else 0 end) as ReceivedStatusCount,
    sum(case when SystemOrderStatus='Sent' then 1 else 0 end) as SentStatusCount,
    sum(case when SystemOrderStatus='Complete' then 1 else 0 end) as CompleteStatusCount
from
    "Order"
group by
    StoreId
order by
    StoreId
...