我有一個表的數據:MySQL:計數,分組和排序:整個表數據?
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
我修復了第二個查詢。對您的樣本數據進行測試會返回您所需的數據。 – rogal111
是的,這正是我需要的,偉大的工作。非常感謝Rogal。 – Jay