使用 SUM() 而不对结果进行分组

Using SUM() without grouping the results(使用 SUM() 而不对结果进行分组)
本文介绍了使用 SUM() 而不对结果进行分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经阅读了 (这个),但无法找到一种方法来解决我的具体问题.我知道 SUM() 是一个聚合函数,不这样使用它是没有意义的,但在这种特定情况下,我必须 SUM() all的结果,同时保持每一行.

I already read (this), but couldn't figure out a way to implement it to my specific problem. I know SUM() is an aggregate function and it doesn't make sense not to use it as such, but in this specific case, I have to SUM() all of the results while maintaining every single row.

这是桌子:

--ID-- --amount--
  1        23
  2        11
  3        8
  4        7

我需要 SUM() 金额,但保留每条记录,所以输出应该是这样的:

I need to SUM() the amount, but keep every record, so the output should be like:

--ID-- --amount--
  1        49
  2        49
  3        49
  4        49

我有这个查询,但它只对每一行求和,而不是将所有结果加在一起:

I had this query, but it only sums each row, not all results together:

SELECT 
    a.id,
    SUM(b.amount)

FROM table1 as a 
JOIN table1 as b ON a.id = b.id
GROUP BY id

没有 SUM() 它只会返回一行,但我需要维护所有 ID...

Without the SUM() it would only return one single row, but I need to maintain all ID's...

注意:是的,这是一个非常基本的示例,我可以在这里使用 php 来执行此操作,但显然表格更大,行和列更多,但这不是重点.

Note: Yes this is a pretty basic example and I could use php to do this here,but obviously the table is bigger and has more rows and columns, but that's not the point.

推荐答案

SELECT a.id, b.amount
FROM table1 a
CROSS JOIN
(
    SELECT SUM(amount) amount FROM table1
) b

您需要执行 笛卡尔连接表中每一行与每个 id 的总和.由于子选择只有一个结果 (49),它基本上只是被附加到每个 id 上.

You need to perform a cartesian join of the value of the sum of every row in the table to each id. Since there is only one result of the subselect (49), it basically just gets tacked onto each id.

这篇关于使用 SUM() 而不对结果进行分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)