Попытка найти верхний 2 столбца с функцией суммы.
Столбцы могут иметь целочисленное значение 0 или 1.
Таблицу можно рассматривать как:
ID C_ONE C_TWO C_THREE
1 1 1 0
2 0 1 1
3 1 1 0
4 0 0 0
5 1 1 0
Столбец C_TWO имеет точки 4, а столбец C_ONE имеет точки 3, которые являются двумя верхними столбцами и их значениями соответственно.
Я застрял с этими кодами.
SELECT COUNT(ID)
FROM MY_TABLE
ORDER BY SUM(C_ONE), SUM(C_TWO), SUM(C_THREE)
LIMIT 2
Это не кто-то.. это тот самый
Кто-то знакомый, да!
Ну, вы можете развернуть и агрегировать:
select c.col,
(case when c.col = 'col1' then t.col1
when c.col = 'col2' then t.col2
when c.col = 'col3' then t.col3
end) as cnt
from (select sum(col1) as col1, sum(col2) as col2, sum(col3) as col3
from t
) t cross join
(select 'col1' as col union all
select 'col2' as col union all
select 'col3' as col
) c
order by cnt desc
limit 2;
Вчера кто-то задал очень похожий вопрос. stackoverflow.com/questions/56326146/…