2017-02-20 205 views
-4

我已經一個表T1與下面列與最大值選擇行

C1 SeqNo C2 ID 

1 1  10 abc 
1 1  20 xyz 
1 1  30 mn0 
1 2  10 123 
1 3  10 abc 
1 3  20 xyz 
2 1  10 a1c 
2 2  10 x1z 
2 2  20 m10 
2 2  30 1k3 
2 3  10 a1c 
2 3  20 x1z 

我必須選擇ID其中SeqNo是max和C2爲C1

的每個不同的值最大 seqNo的最大

的結果應該是:

1 3 20 xyz 
2 3 20 x1z 

如果有人可以幫助請

+1

其他解決方案爲什麼這個標籤'mysql'和'db2'? – shmosel

+0

ORDER BY seqno DESC,C2 DESC LIMIT 1 – Strawberry

+0

您使用的是MySQL還是DB2?每個人的答案都不相同。 – Barmar

回答

0

所有你需要的是一個GROUP BY子句和MAX聚合函數:

SELECT id, MAX(rev) FROM YourTable GROUP BY id ...

0
SELECT C1, SeqNo, MAX(C2), ID 
    FROM T1 
WHERE C1 = 1 
GROUP BY SeqNo 
ORDER BY SeqNo DESC 
LIMIT 1; 
0

在DB2

select C1, ID, Max(SeqNo) as SeqNo, Max(C2) as C2 
from yourtable 
where C1=1 
group by C1, ID 
order by 3 desc, 4 desc, 2 desc 
fetch first rows only 
-1

SELECT * FROM T1 其中C2 > =(SELECT max(c2)FROM check) limit 1

0

在DB2

select * from (
select f1.*, rownumber() over(order by SeqNo desc, C2 desc, ID desc) rang 
from yourtable f1 where f1.C1=1 
) tmp where tmp.rang=1