@komino

Как подсчитать кол-во записей нескольких столбцов?

Данные:
столбец_1 | столбец_2
4 5
2 5
3 4
4 1
2 3

Результат:
группировка | кол-во_1 | кол-во_2
1 0 0
2 2 0
3 1 1
4 2 0
5 0 2

P.S. Пишу с телефона, извиняйте за клинопись
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Akina
Сетевой и системный админ, SQL-программист.
SELECT value,
       SUM(value = val1) total_1,
       SUM(value = val2) total_2
FROM ( SELECT val1 value FROM test
       UNION 
       SELECT val2 FROM test ) total
CROSS JOIN test
GROUP BY value
ORDER BY value;

DEMO

Само собой если некоего значения нет ни в одном из полей, его не будет и в результате.
Ответ написан
@kylemaclohlan
select coalesce(t1.col1, t2.col2) as "группировка"
     , coalesce(t1.c, 0)          as "кол-во_1"
     , coalesce(t2.c, 0)          as "кол-во_2"
from (select col1, count(*) c from test group by col1) t1
full join
    (select col2, count(*) c from test group by col2) t2 on t1.col1 = t2.col2
order by 1
;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы