gpt4 book ai didi

javascript - 在行中对按其他列 ID 分组的一些其他列行值求和

转载 作者:行者123 更新时间:2023-11-29 14:35:50 25 4
gpt4 key购买 nike

是否可以进行这样的查询?我有 ID、一些 IN 值、Out 值,最后一列 TOTAL 是 IN 和 OUT 之差的总和。我真的需要完整的金额。等于的 ID2 行必须在 SUM 列中求和。 ID2的个数没有固定的,有的时候是一行求和,有的时候会更多。我还可以添加一个差异列,以仅对相同 ID2 的该行中的值求和。

我的疑问是,是否可以连续求和,在其他列的某些行中累积?

ID  ID2 IN  OUT TOTAL (IN-OUT)
1 2 200 150 blank-null-space-or whatever but a character
2 2 350 250 doesn't matter, also it can have the same SUM result as below
3 2 600 400 350 ( = 200 - 150 + 350 - 250 + 600 - 400)
4 3 100 80 20

或者我必须在客户端用 JavaScript 完成?哪个更好或者你建议?也许在 JavaScript 中更容易,但我想一步完成所有操作以减少池连接。

一个简单的可验证示例是

CREATE TABLE "table1" (
"ID" int NOT NULL,
"ID2" int DEFAULT NULL,
"`EXT_ID" int DEFAULT NULL,
"IN" int DEFAULT NULL
"OUT" int DEFAULT NULL
);

INSERT INTO "table1" ("ID", "ID2", "EXT_ID", "IN", "OUT") VALUES
(1, 2, 1, 200, 150),
(2, 2, 2, 350, 250),
(3, 2, 2, 600, 400),
(4, 3, 4, 100, 80),
(5, 3, 5, 130, 100),
(6, 4, 6, 100, 80),
(7, 4, 7, 120, 70),
(8, 4, 7, 150, 90);

编辑:添加了一个外部 ID 列“EXT_ID”,该列的条件仅显示一行,并且具有来自同一“ID2”的 MAX 值。

更正了 SQL 语法。

最佳答案

已编辑

是的,这是可能的。您可以使用分组依据(如果您只想要总数)

CREATE TABLE "table1" (
"ID" int NOT NULL,
"ID2" int DEFAULT NULL,
"EXT_ID" int DEFAULT NULL,
"IN" int DEFAULT NULL,
"OUT" int DEFAULT NULL
);

INSERT INTO "table1" ("ID", "ID2", "EXT_ID", "IN", "OUT") VALUES
(1, 2, 1, 200, 150),
(2, 2, 2, 350, 250),
(3, 2, 2, 600, 400),
(4, 3, 4, 100, 80),
(5, 3, 5, 130, 100),
(6, 4, 6, 100, 80),
(7, 4, 7, 120, 70),
(8, 4, 7, 150, 90);

select "ID2", sum("IN" - "OUT")
from "table1"
group by "ID2";

result 1

旧答案:

是的,这是可能的。你可以使用窗口函数

CREATE TABLE "table1" (
"ID" int NOT NULL,
"ID2" int DEFAULT NULL,
"IN" int DEFAULT NULL,
"OUT" int DEFAULT NULL
);

INSERT INTO "table1" ("ID", "ID2", "IN", "OUT") VALUES
(1, 2, 200, 150),
(2, 2, 350, 250),
(3, 2, 600, 400),
(4, 3, 100, 80);

select * , sum("IN" - "OUT") over (partition by "ID2" order by "ID")
from "table1"
order by "ID2", "ID";

result 2

如您在 https://www.postgresql.org/docs/current/static/functions-window.html 中所见

一个功能示例:http://rextester.com/OVCTC74070

关于javascript - 在行中对按其他列 ID 分组的一些其他列行值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44895741/

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