2013-12-16 60 views
0

我有一個練習數據庫。我想列出具有相應標題名稱的不同類型的最大價格,但當然,我不能只將標題名稱屬性放入我的SELECT子句中,因爲它不出現在GROUP BY子句中。有沒有解決我的問題?謝謝!根據標題名稱標題列出最高價格?

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

回答

1

你沒有提到你正在使用的數據庫。大多數數據庫都支持ANSI標準row_number()和窗口/分析函數。這裏有一個方法做你想要什麼:

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; 

在MySQL中,不支持row_number()的情況下,你可以這樣做:

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