2017-10-12 31 views
-1

性別が女性の私のテーブルから患者の最高身長、姓、名字を表示する必要があります。問題は最高の高さを表示していないことです。それはすべての女性を示しています。私は間違って何をしていますか?SQL表示のMAX値が正しく表示されない

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

したがって、最も高い患者の高さが必要ですか?つまり、1つのレコードが返されることを期待していますか? –

+0

あなたの質問は少しあいまいです。私はあなたが最も高い女性患者を見つけて彼女の身長、名字、名字を印刷したいと思っているのは間違いありませんか? – user1675642

+0

マイク・パークヒル、あなたは正しいです。正確でないことを申し訳ありません –

答えて

4

名前と姓でグループ化することはできません。結果は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がわからないことです。

+0

高さの高い女性が複数いる場合は、複数のレコードが返されます。 – NonProgrammer

2

あなたの質問は、あなたが探しているものを返す必要があります。質問:複数の女性が同じ高さで、最も背が高い場合はどうなりますか?

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

ありがとうございました、そしてもっと明確にするために、私は、表示するには最も高い記録のみが必要です。倍数がある場合は、それらも表示する必要があります。私の質問ではっきりしていないのは残念です。 –

+1

その場合、ジョン・エキスはすでにあなたを答えにつかまえました。がんばろう。 – NonProgrammer

1

これはありますか?

SELECT TOP 1 PatientHeight,FirstName,LastName 
FROM Patients 
WHERE Gender = 'F' 
ORDER BY PatientHeight DESC 
関連する問題