2017-10-15 62 views
0

我想要一條SQL語句來獲取具有最小值的行。如何選擇具有最小值的不同行

數據庫

ig_idx ig_team1 ig_team2 rl_league rl_image   rl_sports ig_status cnt 
410296 aaaaa  xxxxx  BRA D2  icon_BRA D2.png 7   S   3 
410298 aaaaa  xxxxx  BRA D2  icon_BRA D2.png 7   S   3 
410299 aaaaa  yyyyy  BRA D2  icon_BRA D2.png 7   S   3 
410301 bbbbb  yyyyy  BRA D2  icon_BRA D2.png 7   S   2 
410304 bbbbb  yyyyy  BRA D2  icon_BRA D2.png 7   S   2 
410306 ccccc  zzzzz  BRA D2  icon_BRA D2.png 7   S   2 

如何選擇具有在點列中的最小值的ID?像這樣...

ig_idx ig_team1 ig_team2 rl_league rl_image   rl_sports ig_status cnt 
410296 aaaaa  xxxxx  BRA D2  icon_BRA D2.png 7   S   3 
410301 bbbbb  yyyyy  BRA D2  icon_BRA D2.png 7   S   2 
410306 ccccc  zzzzz  BRA D2  icon_BRA D2.png 7   S   2 
+0

沒有 '點',然而,在[這位前輩問題](https://stackoverflow.com/questions/15291506/sql-query-to-select-distinct-row-with-minimum-value)。 – RobertL

回答

2

使用row_number()

select t.* 
from (select t.*, 
      row_number() over (partition by ig_team order by ig_idx asc) as seqnum 
     from t 
    ) t 
where seqnum = 1; 
0

看起來像它一樣簡單:

SELECT MIN(ig_idx), ig_team1, ig_team2, r1_league, r1_image, r1_sports, ig_status, cnt 
FROM t 
GROUP BY ig_team1, ig_team2, r1_league, r1_image, r1_sports, ig_status, cnt