2013-01-21 51 views
-1

可能重複:
My sql query to get middle row values using GROUP BY functionMySQL查詢由其他列值在同一個表中獲得的第二和第三最小值使用組

我的數據庫結構是這樣

Id  Price  Code 
1  0.12  93 
2  0.13  93 
3  0.54  93 
4  0.96  93 
5  0.10  94 
6  0.30  94 
7  0.90  94 
8  1.40  94 
9  2.30  94 

我必須使用GROUP BY代碼獲取數據,我希望第二行作爲輸出。 在上述例子中我想要的輸出作爲

Id  Price  Code 
2  0.13  93 
6  0.30  94 

並且在其它情況下,我想第三最小值和輸出應該是

Id  Price  Code 
3  0.54  93 
7  0.90  94 
+0

這不是最後一個,我需要所有的值中,但在這種情況下,中間值重複我還需要第二次和第三最小值 – Dinesh

+0

草莓,因爲我想在第二和第三最小值cming了單個代碼,如果我有10個價值相關的代碼相同的代碼我想第二個和第三個最小值 – Dinesh

回答

3

這將使您第二值

SELECT MAX(Price), Code 
FROM 
(
    SELECT ID, Price, Code 
    FROM TableName 
    WHERE 
    (
     SELECT COUNT(*) 
     FROM TableName as f 
     WHERE f.Code = TableName.Code and 
       f.Price <= TableName.Price 
    ) <= 2        // << just change this value 
) s 
GROUP BY Code 
相關問題