0

重複の可能性:
GROUP BY関数を使用して中間行の値を取得するための私のSQLクエリ

私のデータベース構造は次のようなものです

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あり、出力として 2 番目に小さい行が必要です。上記の例では、出力を次のようにします

Id     Price     Code
2      0.13      93
6      0.30      94

それ以外の場合、3番目に小さい値が必要で、出力は

Id     Price     Code
3      0.54      93
7      0.90      94
4

1 に答える 1

3

これにより、2番目の値が得られます

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
于 2013-01-21T13:50:17.977 に答える