2010-06-14 46 views
1

我的表結構是(ID,集羣,QID,優先級)。我試圖弄清楚如何顯示每個羣集的最大優先級值。說羣集1有優先級100,102,105。我想顯示包含105的記錄。請幫助。MySQL查詢問題上組和最大

+0

請發表您已有的 – 2010-06-14 08:10:56

回答

2
select cluster, MAX(priority) from structure group by cluster; 

要查找所有的列TRY

select * from structure 
where priority = (
       select MAX(priority) from structure as s 
       where s.cluster = structure.cluster 
      ); 
+0

不,這是行不通的。它不返回集羣最高優先級的記錄。只顯示最大值。 – 1s2a3n4j5e6e7v 2010-06-14 08:14:30

+0

好吧,然後嘗試我編輯的答案。 – Salil 2010-06-14 08:21:33

2

您可以用內篩選出的行加入,如:

select s.* 
from structure s 
join (
     select cluster, MAX(priority) maxprio 
     from structure 
     group by 
       cluster 
     ) filter 
on  s.cluster = filter.cluster 
     and s.priority = filter.maxprio 

這將返回多行如果它們都具有該羣集的最高優先級。

+0

這個工程!感謝您的直接幫助。與邏輯http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/相比,這似乎有點慢。如果您願意,請嘗試檢查。 – 1s2a3n4j5e6e7v 2010-06-14 08:41:05