我需要在性别为女性的表格中显示患者的最高身高,姓名和姓氏。问题是它没有显示最高的高度。它显示了所有女性。我做错了什么?
SELECT MAX(PatientHeight) as PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
GROUP BY FirstName, LastName
编辑: 我正在添加解决方案,如果有人发现这个并希望了解更多信息。当我刚刚学习SQL并且没有人可以问我这样的时候就回来了,所以我在这里发布了它。我要感谢用户Jon Ekiz简要解释并更好地解决问题。他下面的解决方案正是我需要更好地理解SQL
答案 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