gpt4 book ai didi

mysql - SQL向MySQL结果集添加汇总行

转载 作者:行者123 更新时间:2023-11-29 04:39:37 26 4
gpt4 key购买 nike

如果我有一个 MySQL 表,例如:

enter image description here

我想使用 SQL 计算 PositiveResult 列和 NegativeResult 列的总和。通常我可以简单地在查询中执行 SUM(PositiveResult)

但是,如果我想更进一步,将总计放在结果集底部的一行中怎么办:

enter image description here

这可以在数据级别实现还是表示层问题?如果可以通过 SQL 完成,我该怎么做?我是一个 SQL 新手。

感谢受访者。我现在将与客户核实一下。

另外,是否可以添加一个文本列,使最后一行数据的值不显示在摘要行中?像这样:

enter image description here

最佳答案

我也会在表示层执行此操作,但您可以使用 MySQL...

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,pos DECIMAL(5,2)
,neg DECIMAL(5,2)
);

INSERT INTO my_table VALUES
(1,0,0),
(2,1,-2.5),
(3,1.6,-1),
(4,1,-2);


SELECT COALESCE(id,'total') my_id,SUM(pos),SUM(neg) FROM my_table GROUP BY id WITH ROLLUP;

+-------+----------+----------+
| my_id | SUM(pos) | SUM(neg) |
+-------+----------+----------+
| 1 | 0.00 | 0.00 |
| 2 | 1.00 | -2.50 |
| 3 | 1.60 | -1.00 |
| 4 | 1.00 | -2.00 |
| total| 3.60 | -5.50 |
+-------+----------+----------+
5 rows in set (0.02 sec)

这是修改后的问题的 hack - 它不是很漂亮,但我认为它有效...

SELECT COALESCE(id,'') my_id
, SUM(pos)
, SUM(neg)
, COALESCE(string,'') n
FROM my_table
GROUP
BY id
, string
WITH ROLLUP
HAVING n <> '' OR my_id = ''
;

关于mysql - SQL向MySQL结果集添加汇总行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32612672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com