当前位置: 首页 > 知识库问答 >
问题:

需要对每个存储区中具有ItemID的所有最近行进行求和

薛朝
2023-03-14

我有两个目标。我更简单的目标是编写一个查询,其中我在ItemID中感觉到,并且它仅使用每个StoreID的最新数据转换,将与该ItemID匹配的计算量求和。因此使用以下示例数据:

DateTransferred | StoreID | ItemID | ComputedQuantity
11/10/17        | 1       | 1      | 3 <
10/10/17        | 1       | 1      | 4
09/10/17        | 2       | 1      | 9 <
08/10/17        | 3       | 1      | 1 <
07/10/17        | 3       | 1      | 10

我希望它拉出旁边有<的每一行,因为这是StoreID的最近日期,并加起来为13

我更复杂的目标是,我希望将上面计算的值包含在一个“join”中,在这个“join”中处理Item表,这样我就可以拉出所有的项,并将它们与一个新列连接起来,该列具有合计的ComputedQuantity

这是在Windows Server2008上的SQL Server10上,如果这很重要的话

共有1个答案

江棋
2023-03-14

一种简单的方法使用相关子查询:

select t.*
from t
where t. DateTransferred = (select max(t2.DateTransferred)
                            from t t2 
                            where t2.storeid = t.storeid
                           );

另一种更简单的方法使用窗口函数:

select t.*
from (select t.*,
             row_number() over (partition by storeid order by DateTransferred desc) as seqnum
      from t
     ) t
where seqnum = 1;

在这两种情况下,如果您想要某个给定日期(例如一年前)或之前的最近日期,都可以向子查询添加where子句。

 类似资料:
  • 问题内容: 我有以下SQL: 这将按照我期望的方式对所有null进行计数。但是,我想使用此sql遍历目录中的每个表,例如在 有人可以提供执行此操作所需的sql吗,我对使用游标一无所知。 谢谢 问题答案: 无需游标。只需将您设置为 然后从此更改您的条款 到 所以整个代码…

  • 问题内容: 我有看起来像这样的数据: 如何查询此数据以获得每个组最流行(按计数)的颜色。因此结果将如下所示: 问题答案: 顺便说一句,不要命名字段或。它们是关键字,将导致头痛和令人伤心。

  • 例如:{1,2,3,4,-3}输出将是4,因为1+2+3+4的和是最大和,该序列中有4个数字 我知道如何用O(n^2)的时间复杂度来做这件事,但不知道如何用O(n)的帮助?:)

  • 方法和测试位于一个类中,例如 下面是我的testng.xml的示例,其中包含了包含功能测试的包 UPD.post修改后的代码中包含AfterTest。我只使用before/aftermethod注释

  • 问题内容: 我想用来编码大量数据,而不必一次将所有数据加载到内存中。 我以为json包中内置了此功能,但事实并非如此。 操场 我目前只是在自己构建json字符串。 操场 有一个更好的方法吗? 如果json.Marshaler像这样,那将是微不足道的。 问题答案: 不幸的是,该程序包还没有办法做到这一点。您现在(手动)执行的操作是执行此操作的最佳方法,而无需修改内置程序包。 如果要打补丁,则可以在e

  • 我对用户和资源有很多关系。 用户: 资源: 中间表是。与: 我获取资源用户表中用户id所在的所有资源。到现在为止,一直都还不错。但是,即使中间表中不存在用户id,如何获取所有资源条目呢?假设我在资源表中有3个资源。Id 1、2和3。我有一个ID为1的用户。在中间表中,我只有两行: resource_id1和user_id1和值50。 resource_id2和user_id1和值100。 但是我想