2011-10-29 33 views
0

讓說我有這個表在MySQL中選擇最重複的值並進行排序

no | date  | no1 | no2 | no3 | 
------------------------------------------ 
01 | 1993-05-01 | 0019 | 1124 | 0592 | 
02 | 1993-05-02 | 1234 | 4221 | 5543 | 
03 | 1993-05-03 | 4321 | 0019 | 0019 | 
04 | 1993-05-04 | 0019 | 1112 | 6876 | 

什麼MySQL查詢將返回最多重複次數和最新日期排序呢?

+1

列中最重複的數字? –

+0

嗨碎紙機,我需要在所有列上最重複的數字。 Tq – kepam

+0

@kepam:例如? –

回答

0

您需要首先「扁平化」您的數據集。您可以通過爲每列運行1個查詢來完成此操作,然後對組合執行UNION和SELECT操作。

SELECT date, no, SUM(c) c FROM (
SELECT max(date) date, no1 AS no, count(no1) c FROM table GROUP BY no 
UNION 
SELECT max(date) date, no2 AS no, count(no1) c FROM table GROUP BY no 
UNION 
SELECT max(date) date, no3 AS no, count(no1) c FROM table GROUP BY no 
) grouped_data GROUP BY no ORDER BY c DESC 
+0

謝謝。它的工作完美,只按日期排序,不給最新的日期。謝謝 – kepam