sql - 在 oracle 中对列进行分组
问题描述
我的表中有三列:
Amount
, OrderNumber
,Customerid
对于每个customerid
将有ordernumber
和amount
。现在我需要显示customerid
,Ordernumber
和Amount
(每个客户 ID 的总金额)。
custid srcnumber amount
112 4344 20
112 7678 10
112 8766 30
34 6577 15
34 4566 5
预期的:
custid srcnumber amount
112 4344 60
112 7678 60
112 8766 60
34 6577 20
34 4566 20
解决方案
使用sum() over (partition by ..)
分析函数总结每行的金额:
select Customerid as custid,
OrderNumber as srcnumber,
sum(amount) over ( partition by Customerid ) as amount
from tab
order by custid desc
推荐阅读
- javascript - JavaScript 有条件地添加方法
- tizen-native-app - tizen SAP 中的 sap_socket_send_data 和 sap_peer_agent_send_data 有什么区别?
- java - 如何在 Vertx 中实现 WebSocket 客户端在一段时间后重新连接?
- angular - 如何在 Ionic 3 中的 Modal 中传递和获取数据?
- javascript - nodejs post方法中的第二个参数是什么
- python - 除非先选择一个值,否则 Python / PyQT 输入字段在自动完成期间崩溃
- javascript - 使用 Typescript 反应路由器(函数类)
- c# - 检查一组对象是否正在移动 Unity 3D
- python - Python 子进程没有从 Bat 文件中获取环境变量
- python - 什么是 Gridsearch.cv_results_ ,可以解释其中的所有内容,即 mean_test_score 等吗?