我試圖使用Max(),子查詢和連接,但我的知識是有限的,我不知道如何組織它們。我願意只使用幾個嵌套的select語句,知道它可能是資源密集型的,但我無法實現它。如何在一組行中返回多個值。
我需要返回任何空值以及每個位置的最高ConfigID。
TABLE
ID Location ConfigID
1 AA NULL
2 AA 2
3 AA 1
4 BB 5
5 BB 4
6 BB 3
7 CC NULL
8 CC 6
我想看到的結果:
ID Location ConfigID
1 AA NULL
2 AA 2
4 BB 5
7 CC NULL
8 CC 6
我曾嘗試:
select ID, Location, ConfigID
from Table
where ConfigID is null
or configID = (select ConfigID
from table
where Location in (select distinct Location
from Table
order by ConfigID desc
)
)
SQL服務器不一樣,因爲我不能在一個子查詢,除非有一個ORDER BY頂部使用。現在我又看了一遍,我不認爲順序是在正確的子查詢中。它儘可能接近我所能得到的。當我看到Select Max from each subset時,我很有希望,但我認爲這是一個死衚衕。另外,我不相信自聯接會起作用,因爲我將自聯接的數據全部在一列中。
我必須說服自己到不使用前出於某種原因。這很好。 – JuuB406
也許你沒有把它放在正確的地方,因爲你有兩個子查詢。你也可以用'union'來做,就像你在其他答案中看到的一樣,但這個答案是最簡單的,也可能是最快的。 –