我只想每天从一张桌子上获得最大数量。因此,每天,如果我在 Cnt 中只有一个零,则抓取一条记录,如果该值大于零,则抓取该特定记录。一个简单的 MAX() 将不起作用,因为我在同一天有不同的价格。
这是我的桌子的图像。我想将行保持为绿色。也许这是一个自我加入,基于 ID 和日期。只是在这里大声思考。
我正在使用 SQL Server 数据仓库。
我只想每天从一张桌子上获得最大数量。因此,每天,如果我在 Cnt 中只有一个零,则抓取一条记录,如果该值大于零,则抓取该特定记录。一个简单的 MAX() 将不起作用,因为我在同一天有不同的价格。
这是我的桌子的图像。我想将行保持为绿色。也许这是一个自我加入,基于 ID 和日期。只是在这里大声思考。
我正在使用 SQL Server 数据仓库。
可以肯定 MAX 正是您在这里所需要的。像这样的东西。这将从样本数据中检索您想要的确切行。
select max(Cnt)
, Dt
, ID
from YourTable
group by Dt
, ID
鉴于新的理解,我认为您可能需要这样的东西。这将返回您感兴趣的整行。
select *
from
(
select ID
, P1
, P1
, P1
, P1
, P1
, P1
, Cnt
, Firm
, Sys
, Dt
, RowNum = ROW_NUMBER()over(partition by ID, Dt order by Cnt desc)
from YourTable
) x
where x.RowNum = 1