Php Mysql查询使用group by同一表中的其他列值获得第二个和第三个最小值

Php Mysql查询使用group by同一表中的其他列值获得第二个和第三个最小值,php,mysql,sql,greatest-n-per-group,Php,Mysql,Sql,Greatest N Per Group,可能重复: 我的数据库结构如下 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 我必须使用GROUPBY代码获取数据,并且我希望第二行作为输

可能重复:

我的数据库结构如下

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
我必须使用GROUPBY代码获取数据,并且我希望第二行作为输出。 在上面的示例中,我希望输出为

Id     Price     Code
2      0.13      93
6      0.30      94
在另一种情况下,我想要第三个最小值,输出应该是

Id     Price     Code
3      0.54      93
7      0.90      94

这将为您提供第二个值

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

这将为您提供第二个值

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

这不是最后一个代码中的重复,我需要所有值中的中间值,但在这种情况下,我需要第二个和第三个最小值草莓,因为我希望第二个和第三个最小值用于单个代码,就像我有10个与同一代码相关的价格值一样,我希望第二个和第三个最小值这不是最后一个代码中的重复一,我需要所有值中的中间值,但在这种情况下,我需要第二个和第三个最小值,因为我希望第二个和第三个最小值用于单个代码,就像我有10个与相同代码相关的价格值一样,我希望第二个和第三个最小值