Как получить количество первичных ключей по нескольким столбцам и их категориям в Vertica SQL? - PullRequest
1 голос
/ 05 августа 2020

У меня есть таблица, приведенная ниже. (3 столбца и 10 строк)

ID cat_1 cat_2
1001    High    High
1002    Mid High
1003    Mid High
1004    <null>  <null>
1005    <null>  Low
1006    High    High
1007    <null>  <null>
1008    High    Mid
1009    Low Low
1010    High    High

И я хотел бы рассчитать количество идентификаторов для каждого из столбцов. Я не хочу выполнять несколько запросов. Есть ли простой способ добиться этого?

Category    cat_1   cat_2
High    4   5
Mid 2   1
Low 1   2
<null>  3   2

В настоящее время я знаю только выполнение нескольких запросов с группировкой по операторам ( "выберите cat_1, count (ID) из группы таблиц на 1" ). Я знаю, что это неправильный подход. Спасибо!

1 Ответ

0 голосов
/ 05 августа 2020

Вы можете развернуть и агрегировать. Вот общий подход:

select cat, sum(cat_1), sum(cat_2)
from ((select cat_1 as cat, 1 as cat_1, 0 as cat_2
       from t
      ) union all
      (select cat_2, 0 as cat_1, 1 as cat_2
       from t
      )
     ) c
group by cat;

Здесь - скрипт db <>.

...