比方說,我有數字對的表:如何選擇具有唯一元素的最大子集對?
a | b
--+--
1 | 1
2 | 1
3 | 1
2 | 2
4 | 2
5 | 5
1 | 3
對於每個b
我想選擇一個a
如沒有兩個相同的a
S代表不同b
秒。
如果我做group by
一個簡單的查詢:
select * from t group by b
我得到以下結果反饋:
a | b
--+--
1 | 1
2 | 2
5 | 5
1 | 3
a == 1
爲b == 1
和b == 3
我要的反而是像這個:
a | b
--+--
3 | 1
2 | 2
5 | 5
1 | 3
你能幫我解決這個問題嗎?我假設這種子集查詢有一個已知的術語,但我沒有意識到這一點,這使得搜索答案更困難。
如果查詢在給定的b
中選擇最大的a
,同時保持給定的唯一性約束,則爲獎勵分數。在我的例子,結果將是:
a | b
--+--
3 | 1
4 | 2
5 | 5
1 | 3
這聽起來像一個難題。如何解決兩個'b'只用一個'a'解決的情況?無論如何,我不認爲這種類型的問題是要在SQL中解決的。 – Andomar