我试图使用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'来做,就像你在其他答案中看到的一样,但这个答案是最简单的,也可能是最快的。 –