SQL显示MAX值无法正确显示

时间:2017-10-12 20:28:43

标签: sql select max

我需要在性别为女性的表格中显示患者的最高身高,姓名和姓氏。问题是它没有显示最高的高度。它显示了所有女性。我做错了什么?

SELECT MAX(PatientHeight) as PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
GROUP BY FirstName, LastName

编辑: 我正在添加解决方案,如果有人发现这个并希望了解更多信息。当我刚刚学习SQL并且没有人可以问我这样的时候就回来了,所以我在这里发布了它。我要感谢用户Jon Ekiz简要解释并更好地解决问题。他下面的解决方案正是我需要更好地理解SQL

3 个答案:

答案 0 :(得分:4)

您不能按名字和姓氏进行分组,只需要一个结果。请改用:

select firstname
    , lastname
    , patientheight
from patients
where patientheight = (
            select max(patientheight) max_height
            from patients
            where gender = 'F'
            )
and gender = 'F'

BEtter解决方案是使用row_number并获取第一个结果,但不确定您使用的是哪个dbms。

答案 1 :(得分:3)

您的问题不够清楚,但是以下查询应该返回您要查找的内容。问题:如果多个女性身高相同且最高,会怎么样?

SELECT top 1 PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
Order by PatientHeight desc

答案 2 :(得分:2)

这样做吗?

SELECT TOP 1 PatientHeight,FirstName,LastName
FROM Patients
WHERE Gender = 'F'
ORDER BY PatientHeight DESC