我有表排名和内部我有五个不同的列,我想获取行记录,我有最大值,例如,我有一列phd_ratio,所以我说:
SELECT * FROM rank HAVING max(phd_ratio)
这意味着我想获取值最大的行记录,但它返回了phd_ratio值最小的第一行,有什么方法可以做到这一点吗?
d4so4syb1#
您可以使用子查询来查找最大phd_ratio:
phd_ratio
SELECT * FROM `rank` WHERE phd_ratio = (SELECT MAX(phd_ratio) FROM `rank`);
或者使用LIMIT查询:
LIMIT
SELECT * FROM `rank` ORDER BY phd_ratio DESC LIMIT 1;
第二个版本不适合两个或多个记录可以连接到最高的phd_ratio,并且您需要所有连接。在这种情况下,请使用第一个版本。此外,从MySQL 8+开始,RANK是保留关键字,您应该避免使用它命名数据库表和对象。
RANK
mpbci0fu2#
我建议用这两个中的一个SELECT * FROM排名WHERE医生比率=(SELECT MAX(医生比率)FROM排名)或SELECT * 从排名排序依据phd_ratio描述限制1
nnsrf1az3#
你可以使用INNER JOIN来连接你的数据,并使用max phd_ratio:
INNER JOIN
select t.* from `rank` t inner join ( select max(phd_ratio) as phd_ratio from `rank` ) as s on s.phd_ratio = t.phd_ratio;
3条答案
按热度按时间d4so4syb1#
您可以使用子查询来查找最大
phd_ratio
:或者使用
LIMIT
查询:第二个版本不适合两个或多个记录可以连接到最高的
phd_ratio
,并且您需要所有连接。在这种情况下,请使用第一个版本。此外,从MySQL 8+开始,RANK
是保留关键字,您应该避免使用它命名数据库表和对象。mpbci0fu2#
我建议用这两个中的一个
SELECT * FROM排名WHERE医生比率=(SELECT MAX(医生比率)FROM排名)
或
SELECT * 从排名排序依据phd_ratio描述限制1
nnsrf1az3#
你可以使用
INNER JOIN
来连接你的数据,并使用max phd_ratio: