2013-12-16 2 views
0

연습용 데이터베이스가 있습니다. 해당 제목 이름으로 다른 유형의 최대 가격을 나열하고 싶습니다만, 물론 GROUP BY 절에 나타나지 않기 때문에 제목 이름 속성을 SELECT 절에 넣을 수 없습니다. 내 문제에 대한 해결책이 있습니까? 감사!제목 가격으로 최대 가격을 나열하십시오.

SELECT type, MAX(price) "price" 
FROM titles 
GROUP BY type 
ORDER BY type DESC; 

답변

1

사용중인 데이터베이스에 대해서는 언급하지 않았습니다. 대부분의 데이터베이스는 ANSI 표준 row_number() 및 창/분석 함수를 지원합니다. 여기 당신이 원하는 것을 할 수있는 하나의 방법입니다 : row_number()를 지원하지 않는 MySQL은,의 경우

select type, name, price 
from (select t.*, row_number() over (partition by type order by price desc) as seqnum 
     from titles t 
    ) t 
where seqnum = 1; 

, 당신은 할 수있다 :이 아무 제목 문자를 포함하지 않는 것으로 가정합니다

select type, 
     substring_index(group_concat(name separator '|' order by price desc), '|', 1) as title, 
     max(price) as price 
from titles 
group by type; 

'|'.

+0

감사합니다. TSQL을 사용하고 있으며 작동합니다. – Grobi

관련 문제