2017-10-12 4 views
-1

성별이 여성 인 테이블에서 환자의 최고 신장, 이름 및 성을 표시해야합니다. 가장 큰 높이가 표시되지 않는 것이 문제입니다. 그것은 모든 암컷을 보여줍니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?SQL 표시 MAX 값이 올바르게 표시되지 않음

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

그래서 가장 높은 환자의 신장을 원하십니까? 즉, 단일 레코드가 반환 될 것으로 예상합니까? –

+0

귀하의 질문에 약간 모호합니다. 나는 가장 키가 큰 여자 환자를 찾고 그녀의 키와 이름, 성을 인쇄하고 싶다. – user1675642

+0

Mike Parkhill, 정확합니다. 죄송합니다. 정확하지 않다면 –

답변

4

성 및 이름으로 그룹화 할 수 없으며 하나의 결과 만 예상 할 수 있습니다. 대신를 사용

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