Количество столбцов и агрегация - PullRequest
0 голосов
/ 05 марта 2020

У меня есть следующая таблица, в которой есть несколько записей для заказа, и заказ может быть отклонен или утвержден.


Amount  | Approved | Rejected | OrderNo 
-------------------------------------------
 10     |   N      |    Y     |   10
 20     |   Y      |    N     |   10
 30     |   N      |    N     |   10
 40     |   Y      |    N     |   10
 22     |   N      |    Y     |   11
 10     |   N      |    N     |   10
--------------------------------------------

Хотите создать набор результатов, который можно суммировать.

OrderNo | TotalEntries | Approved_Or_Rejected_Entries | TotalAmount
-----------------------------------------------------------------
  10    |   5          |           3                  |    110
  11    |   1          |           1                  |     22

1 Ответ

4 голосов
/ 05 марта 2020

Использовать условное агрегирование:

select
    orderno,
    count(*) totalentries
    sum(case when 'Y' in (approved, rejected) then 1 else 0 end) approved_or_rejected
    sum(amount) total_amount
from mytable
group by orderno
...