Подсчитайте одинаковые столбцы в двух разных таблицах - PullRequest
1 голос
/ 24 апреля 2019

Я ищу способ подсчета для одного и того же столбца в двух разных таблицах.

Итак, у меня есть две таблицы: table1 и table2.У них обоих есть столбец «категория».Я хочу найти способ подсчитать категорию для этих двух таблиц и показать в результате ниже.

Я знаю, как сделать это индивидуально,

select category, count(category) as cnt from table1 
group by category
order by cnt desc
select category, count(category) as cnt from table2 
group by category
order by cnt desc

Не уверен, как это сделатьобъедините два в один.

Ожидаемый результат должен быть таким, как показано ниже.Обратите внимание, что в таблице 1 есть некоторая «категория», но не в таблице 2 или наоборот, например, категории c и d.

 table1  table2
a    4       2
b    4       3
c    3       
d            4

1 Ответ

2 голосов
/ 24 апреля 2019

Один метод - full join:

select coalesce(t1c.category, t2c.category) as category,
       t1c.t1_cnt, t2c.t2_cnt
from (select category, count(*) as t1_cnt
      from table1 
      group by category
     ) t1c full join
     (select category, count(*) as t2_cnt
      from table2 
      group by category
     ) t2c
     on t1c.category = t2c.category;

Вы должны быть очень осторожны, чтобы агрегировать перед выполнением join.

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