-3

我只想每天从一张桌子上获得最大数量。因此,每天,如果我在 Cnt 中只有一个零,则抓取一条记录,如果该值大于零,则抓取该特定记录。一个简单的 MAX() 将不起作用,因为我在同一天有不同的价格。

这是我的桌子的图像。我想将行保持为绿色。也许这是一个自我加入,基于 ID 和日期。只是在这里大声思考。

在此处输入图像描述

我正在使用 SQL Server 数据仓库。

4

1 回答 1

3

可以肯定 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
于 2019-12-06T20:04:43.960 回答