2011-10-29 9 views
0

LETでそれらを並べ替えMySQLのクエリは、ほとんどの繰り返し数を返し、最新の日付別にソートします私は、この表にを選択し、最も繰り返される値と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 | 

を持っていると言いますか?

+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

関連する問題