如何在 sql 中获取带分区的公共列的最大值
how to grab the max of common columns with partition in sql
我有这个 Table 筹码:
我正在寻找每个 ID 的最大值,但是
我使用的代码不正确我需要新的 table 成为
select *
from
(
max (numchips) over (partition by Id)
from @chips
)
您可以使用 ROW_NUMBER
:
SELECT Id, numchips
FROM (
SELECT Id, numchips,
ROW_NUMBER() OVER (PARTITION BY Id
ORDER BY numchips DESC) as rn
FROM @chips
) t
WHERE rn = 1
对于每个 Id
分区中具有最高 numchips
值的记录,rn
等于 1
。
仅当您在 Chips
table 中有一些您还想检索的 附加 列时,使用 ROW_NUMBER()
才有意义。
为什么你不能做呢?:
SELECT
MAX(c.numchips),
c.Id
FROM
@chips as c
GROUP BY
c.Id
我有这个 Table 筹码:
我正在寻找每个 ID 的最大值,但是 我使用的代码不正确我需要新的 table 成为
select *
from
(
max (numchips) over (partition by Id)
from @chips
)
您可以使用 ROW_NUMBER
:
SELECT Id, numchips
FROM (
SELECT Id, numchips,
ROW_NUMBER() OVER (PARTITION BY Id
ORDER BY numchips DESC) as rn
FROM @chips
) t
WHERE rn = 1
对于每个 Id
分区中具有最高 numchips
值的记录,rn
等于 1
。
仅当您在 Chips
table 中有一些您还想检索的 附加 列时,使用 ROW_NUMBER()
才有意义。
为什么你不能做呢?:
SELECT
MAX(c.numchips),
c.Id
FROM
@chips as c
GROUP BY
c.Id