MySql max正在返回最小值

plupiseo  于 2023-03-17  发布在  Mysql
关注(0)|答案(3)|浏览(133)

我有表排名和内部我有五个不同的列,我想获取行记录,我有最大值,例如,我有一列phd_ratio,所以我说:

SELECT * FROM rank HAVING max(phd_ratio)

这意味着我想获取值最大的行记录,但它返回了phd_ratio值最小的第一行,有什么方法可以做到这一点吗?

d4so4syb

d4so4syb1#

您可以使用子查询来查找最大phd_ratio

SELECT *
FROM `rank`
WHERE phd_ratio = (SELECT MAX(phd_ratio) FROM `rank`);

或者使用LIMIT查询:

SELECT *
FROM `rank`
ORDER BY phd_ratio DESC
LIMIT 1;

第二个版本不适合两个或多个记录可以连接到最高的phd_ratio,并且您需要所有连接。在这种情况下,请使用第一个版本。此外,从MySQL 8+开始,RANK是保留关键字,您应该避免使用它命名数据库表和对象。

mpbci0fu

mpbci0fu2#

我建议用这两个中的一个
SELECT * FROM排名WHERE医生比率=(SELECT MAX(医生比率)FROM排名)

SELECT * 从排名排序依据phd_ratio描述限制1

nnsrf1az

nnsrf1az3#

你可以使用INNER JOIN来连接你的数据,并使用max phd_ratio:

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;

相关问题