性別が女性の私のテーブルから患者の最高身長、姓、名字を表示する必要があります。問題は最高の高さを表示していないことです。それはすべての女性を示しています。私は間違って何をしていますか?SQL表示のMAX値が正しく表示されない
SELECT MAX(PatientHeight) as PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
GROUP BY FirstName, LastName
性別が女性の私のテーブルから患者の最高身長、姓、名字を表示する必要があります。問題は最高の高さを表示していないことです。それはすべての女性を示しています。私は間違って何をしていますか?SQL表示のMAX値が正しく表示されない
SELECT MAX(PatientHeight) as PatientHeight, FirstName, LastName
FROM Patients
WHERE Gender = 'F'
GROUP BY FirstName, LastName
名前と姓でグループ化することはできません。結果は1つだけです。代わりにこれを使用します。
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
ありがとうございました、そしてもっと明確にするために、私は、表示するには最も高い記録のみが必要です。倍数がある場合は、それらも表示する必要があります。私の質問ではっきりしていないのは残念です。 –
その場合、ジョン・エキスはすでにあなたを答えにつかまえました。がんばろう。 – NonProgrammer
これはありますか?
SELECT TOP 1 PatientHeight,FirstName,LastName
FROM Patients
WHERE Gender = 'F'
ORDER BY PatientHeight DESC
したがって、最も高い患者の高さが必要ですか?つまり、1つのレコードが返されることを期待していますか? –
あなたの質問は少しあいまいです。私はあなたが最も高い女性患者を見つけて彼女の身長、名字、名字を印刷したいと思っているのは間違いありませんか? – user1675642
マイク・パークヒル、あなたは正しいです。正確でないことを申し訳ありません –