2012-10-11 70 views
0

SELECT * FROM title給我下面的輸出:GROUP BY與訂貨

title_number version_type hd_sd 
1000046   Standard SD 
1000046   Standard HD 
1000050   Standard SD 
1000093   Standard SD 
1000093   Standard HD 
1000125   Standard SD 
1000269   Standard SD 

我需要得到所有不同title_numbers然後hd_sd將= HD如果存在,否則,它將= SD。正確的輸出爲:

title_number version_type hd_sd 
1000046   Standard HD 
1000050   Standard SD 
1000093   Standard HD 
1000125   Standard SD 
1000269   Standard SD 

我得到這個最接近的是SELECT * FROM title GROUP BY title_number,但是這並沒有給我正確的hd_sd列值。我將如何正確地執行此查詢?

回答

2
SELECT title_NUMBer, Version_type, 
     MIN(hd_sd) 
FROM tableName 
GROUP BY title_NUMBer 

改進,

SELECT a.* 
FROM tableName a 
     INNER JOIN 
     (
      SELECT title_NUMBer, MIN(hd_sd) minCol 
      FROM tableName 
      GROUP BY title_NUMBer 
     ) b ON a.title_number = b.title_Number AND 
       a.hd_sd = b.mincol 
+0

非常簡單的,感謝您的幫助! – David542

+0

@ David542第一個查詢沒有提供正確的細節,特別是處理更多的列。更新的一個給出正確的結果。 :) –