SQL: несколько групп в один оператор - PullRequest
0 голосов
/ 02 октября 2018

У меня есть такие данные:

ID             NR             TYPE 
-------------- -------------- ---------------
01             44             A          
01             66             B          
02             77             A
02             53             B

Мне нужен один запрос для этого:

  • Группировать по ID = AVG NR
  • Группировать по ID +Иметь тип A = AVG NR A
  • Группировать по идентификатору + Иметь тип B = AVG NR B

Я думаю, что запрос должен содержать группу по последовательности, но я не могуудалось заставить его работать

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 02 октября 2018

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

select 
   id, 
   avg(case when type='A' then NR end) as 'AVG(NR A)' ,
   avg(case when type='B' then NR end) as 'AVG(NR B)',
   avg(case when type in ('A','B') then NR end) as 'AVG(NR)'
from tablename
group by id
...