0
我有一個非常大的表,我需要從中檢索數據。該表是這樣的:Oracle:如何獲得列表中每個項目的最大值
A B C D
1 foo 4 q
1 fool 2 p
1 fools 13 a
2 pho 5 d
3 phone 14 g
3 phones 6 f
我試圖運行類似:
select max(B) from table where A = 1 union
select max(B) from table where A = 2 union
.
.
.
select max(B) from table where A = 50000;
我想是可以得到:
1 -> fools
2 -> pho
3 -> phones
我有大約50,000條記錄運行這個查詢。 上述方法理論上可行(我嘗試了一個小子集),但我認爲對每個50000值都有一個選擇查詢是低效的。 這也導致進程內存不足錯誤。
有沒有一種方法可以在單個查詢中執行此操作? 我想:
select max(B) from table where A in (first group of 1000) union
select max(B) from table where A in (1000...2000) union
.
.
.
select max(B) from table where A in (40000...50000)
但是這給了我每選擇查詢只有一個最大值(我明白爲什麼) 我真正想要的是50000個最大值。
有我得到的,如果我使用
select max(B) from table where A in (...)
謝謝名單MAX(B)每個項目的值的方式!
工作,謝謝! 我需要做的: '選擇A,最大值(B) 從表 組由A 工會 選擇A,最大值(B) 從表 組由A 爲了通過A' – c3p0