gpt4 book ai didi

sql - 带有附加求和列的 Oracle SQL 查询

转载 作者:行者123 更新时间:2023-12-02 21:49:32 25 4
gpt4 key购买 nike

假设我有一个包含 USER_ID 和 AMOUNT 列的表。对于每一行,AMOUNT 列中可能有正数或负数。

我正在寻找一种从此表中进行选择的方法,以便结果具有每个 USER_ID 的 id、金额总和、正值金额总和、负值金额总和。我可以很容易地进行求和,但我正在尝试弄清楚如何进行最后两列。

我对 SQL 还很陌生。我知道一些基础知识,但我对这一点感到困惑。我有一种感觉,我无法用单个 SELECT 语句来做到这一点。任何帮助都会很棒。

最佳答案

LEAST 和 GREATEST Oracle 函数就可以解决问题(不确定它们是 ANSI 还是 Oracle):

select
user_id
sum(amount) total,
sum(least(amount,0)) total_negs,
sum(greatest(amount,0)) total_pos
from
my_table
group by
user_id

LEAST 返回参数列表中的最小值。如果您传递金额和零,它将过滤掉正数。

GREATEST 将过滤掉负数。

此解决方案不适用于平均值,因为零会改变平均值。

关于sql - 带有附加求和列的 Oracle SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18908484/

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