У меня есть таблица с данными:
id one two three four five six
------------------------------------------------
1 12 32 2 5 34 13
2 43 12 3 33 22 17
3 11 31 3 15 13 13
4 43 12 52 73 29 19
5 3 2 2 3 9 9
6 4 1 3 7 2 19
-------------------------------------------------
Так что я знаю, как считать, группировать и упорядочивать по одному столбцу, например так:
select one, count(one)
from table_numbers
group by one
order by count(one) desc
Вышеупомянутый запрос даст нам:
one count(one)
-----------------
43 2
3 1
4 1
11 1
12 1
-----------------
Так как я могу получить данные, как указано выше, для всех столбцов в одном запросе?
Как это:
One Count(one) Two Count(two) Three Count(three) Four Count(four)
---------------------------------------------------------------------------
43 2 12 2 3 3 73 1
3 1 1 1 2 2 3 1
4 1 2 1 52 1 5 1
11 1 31 1 null null 7 1
12 1 32 1 null null 15 1
null null null null null null 33 1
---------------------------------------------------------------------------
Теперь есть ли способ сделать это в одном запросе SQL?Может быть, использовать соединения или встроенные представления или что-то еще?Или это возможно в одном запросе?
[обновление] Я хочу подсчитать повторяющиеся значения из каждого столбца и отсортировать их в порядке убывания.
[ОБНОВЛЕНИЕ] В случае, если вы хотитеиспользуйте данные таблицы:
CREATE TABLE IF NOT EXISTS `table_numbers` (
`id` int(11) NOT NULL AUTO_INCREMENT, `one` int(2) NOT NULL,
`two` int(2) NOT NULL, `three` int(2) NOT NULL,
`four` int(2) NOT NULL, `five` int(2) NOT NULL,
`six` int(2) NOT NULL, PRIMARY KEY (`id`),
KEY `col_one` (`one`), KEY `col_two` (`two`),
KEY `col_three` (`three`), KEY `col_four` (`four`),
KEY `col_five` (`five`), KEY `col_six` (`six`)
) ;
INSERT INTO `table_numbers` (`id`, `one`, `two`, `three`, `four`, `five`, `six`)
VALUES
(1, 12, 32, 2, 5, 34, 13),(2, 43, 12, 3, 33, 22, 17),(3, 11, 31, 3, 15, 13, 13),
(4, 43, 12, 52, 73, 29, 19),(5, 3, 2, 2, 3, 9, 9),(6, 4, 1, 3, 7, 2, 19);
Пакет благодарностей заранее!
Jay: -)