2013-07-11 43 views
0

高值我在results表以下數據:MySQL查詢的表

 
+-----+-----+-----+-----+-----+-----+ 
| A | B | C | D | E | F | 
+-----+-----+-----+-----+-----+-----+ 
| 100 | 140 | 120 | 130 | 160 | 150 | 
| 200 | 243 | 374 | 435 | 674 | 987 | 
| 312 | 324 | 123 | 456 | 378 | 645 | 
+-----+-----+-----+-----+-----+-----+ 

什麼樣SELECT語句可以讓我從結果表中的最高的5個值?

回答

1

什麼樣的SELECT聲明可以從結果表中得到最高的5個值?

事實上,每一列的處理方式相同表明您的模式是非規範化的。如果數據標準化,這種操作將會大大簡化,從而合併列(但創建一個附加列以指示每個記錄來自哪個列)。

然而,就當前情況來看,你可以使用一個UNION

(SELECT A col FROM results ORDER BY col DESC LIMIT 5) 
UNION ALL 
    (SELECT B col FROM results ORDER BY col DESC LIMIT 5) 
UNION ALL 
    (SELECT C col FROM results ORDER BY col DESC LIMIT 5) 
UNION ALL 
    (SELECT D col FROM results ORDER BY col DESC LIMIT 5) 
UNION ALL 
    (SELECT E col FROM results ORDER BY col DESC LIMIT 5) 
UNION ALL 
    (SELECT F col FROM results ORDER BY col DESC LIMIT 5) 
ORDER BY col DESC 
LIMIT 5 

看到它的sqlfiddle

+0

非常感謝!!!它的工作。有沒有辦法獲得值旁邊的列名? –

+0

@HighlyFlammable:參見[sqlfiddle](http://sqlfiddle.com/#!2/6dd93/3/0)。 – eggyal

+0

謝謝!這正是我想要做的。 –