当前位置: 首页 > 面试题库 >

使用SUM进行总计的T-SQL

岳池暝
2023-03-14
问题内容

我有一个简单的表,其中包含一些虚拟数据设置:

|id|user|value|
---------------
 1  John   2
 2  Ted    1
 3  John   4
 4  Ted    2

我可以通过执行以下sql(MSSQL 2008)语句来选择运行总计:

SELECT a.id, a.user, a.value, SUM(b.value) AS total
FROM table a INNER JOIN table b
ON a.id >= b.id
AND a.user = b.user
GROUP BY a.id, a.user, a.value
ORDER BY a.id

这将给我如下结果:

|id|user|value|total|
---------------------
 1  John   2     2
 3  John   4     6
 2  Ted    1     1
 4  Ted    2     3

现在可以只为每个用户检索最新的行吗?因此结果将是:

|id|user|value|total|
---------------------
 3  John   4     6
 4  Ted    2     3

我要这样做正确吗?任何建议或遵循的新路径都将是很棒的!


问题答案:

试试这个:

;with cte as 
     (SELECT a.id, a.[user], a.value, SUM(b.value) AS total
    FROM users a INNER JOIN users b
    ON a.id >= b.id
    AND a.[user] = b.[user]
    GROUP BY a.id, a.[user], a.value
     ),
cte1 as (select *,ROW_NUMBER() over (partition by [user] 
                         order by total desc) as row_num
         from cte)
select  id,[user],value,total from cte1 where row_num=1

SQL小提琴演示



 类似资料:
  • 问题内容: 我想使用此查询中的值进行更新,但这意味着它返回多个值。 消息512,级别16,状态1,行1 子查询返回的值大于1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 它如何返回不止一列? 问题答案: 如果此查询返回所需的信息: 然后,这可能是您想要的UPDATE查询: 我必须同意戈登的观点,您的分组似乎很奇怪。我不确定我是否正确(这就是为什么我强烈建议您先

  • 我正在努力得到正确的语法下面。我尝试过不同的工会,但都没有成功。 我需要将这三个总数相加为“totcount”。数据表非常大,希望找到一种比第4个子查询更好的方法来获取totcount。

  • 问题内容: 我有看起来像这样的数据: 我得到这样的东西: 只是通过目测,很明显空白date1的paid_amount的总和,但2012年1月25日的date2应该为0。由于某些原因以及其他类似的设置,我得到了具有E-13值的各种总和。 问题答案: 正如其他人指出的那样,这是一个浮点问题。就像: 但 浮点数本质上是不精确的。 在中,您可以通过几种不同的方式来处理。最简单的两个: 圆形的。 将其舍入到

  • 我试图通过使用iloc或loc以及下面引用的数据集来更新表1(一级、二级和三级)。如果有建议,我愿意选择一种比loc和iloc更好的方法。 表1 例1 如果我希望表格更新为第13级和第三级工资等级的1102选择的新信息,我将使用以下pd.loc代码: 例2:这个也管用。 然而,挑战是当我需要选择多个索引或多列时。 多行 现在,如果我想更新表1,所有级别I的总计,而不是执行某种类型的df.isin,

  • 问题内容: 我正在尝试创建一个简单的图像库,每页显示16张图像。我使用LIMIT 16在页面上显示正确的数量,但是如果行数超过16,我想在底部显示链接,以允许用户导航到下一页。 我知道我可以通过删除限制并简单地使用循环来显示前16个项目来达到期望的结果,但是这样效率很低。显然,COUNTING行数总是= 16。 有人可以建议一种更有效的方法吗? 谢谢 问题答案: 除了要获取其他人都提到的计数的单独

  • 问题内容: 如何在Swift中使用CoreLocation计算行进的总距离 到目前为止,我还无法找到有关如何在iOS 8的Swift中执行此操作的任何资源。 自开始跟踪位置以来,您将如何计算移动的总距离? 根据到目前为止的读物,我需要保存一个点的位置,然后计算当前点与最后一个点之间的距离,然后将该距离添加到totalDistance变量中 Objective-C对我来说是非常陌生的,所以我还无法计