SQL显示最大值显示不正确
我需要显示我的表中患者性别为女性的最高身高,姓氏和姓氏。问题是它没有显示最高的高度。它显示所有女性。我究竟做错了什么?SQL显示最大值显示不正确
SELECT MAX(PatientHeight) as PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
GROUP BY FirstName, LastName
您不能按名字和姓氏分组,只能得到一个结果。使用这个来代替:
select firstname
, lastname
, patientheight
from patients
where patientheight = (
select max(patientheight) max_height
from patients
where gender = 'F'
)
and gender = 'F'
更好的解决方案是使用ROW_NUMBER和得到的第一个结果,但不知道你正在使用的DBMS。
如果有多个女性身高最高,这将返回多条记录。 – NonProgrammer
你的问题还不够清楚,但下面的查询应该返回你正在寻找的东西。问题:如果多个女性拥有相同的身高并且是最高的呢?
SELECT top 1 PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
Order by PatientHeight desc
谢谢你,并且要更加清楚,我只需要最高显示的记录。如果有倍数,那么它们也必须显示。对于我的问题不清楚,我感到抱歉。 –
在这种情况下,Jon Ekiz已经为你解答了答案。祝你好运。 – NonProgrammer
这样做吗?
SELECT TOP 1 PatientHeight,FirstName,LastName
FROM Patients
WHERE Gender = 'F'
ORDER BY PatientHeight DESC
那么,你想要最高患者的身高吗?即您希望返回单个记录? –
你的问题有点模棱两可。我是对的,你想找到最高的女病人,并打印她的身高,名字和姓氏? – user1675642
麦克帕克希尔,你是对的。对不起,没有精确 –