从表中仅选择最大计数

时间:2019-12-06 20:01:33

标签: sql sql-server azure-sql-data-warehouse

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

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

enter image description here

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

1 个答案:

答案 0 :(得分: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