[英]Calculate Total Runs For Each Over & I Also Want Sum of First & Second Over. Table Structure is Given Below
**源表:- Cricket_Scores **
超过 | 球 | 跑步 |
---|---|---|
1个 | 1个 | 1个 |
1个 | 2个 | 2个 |
1个 | 3个 | 4个 |
1个 | 4个 | 0 |
1个 | 5个 | 1个 |
1个 | 6个 | 2个 |
2个 | 1个 | 3个 |
2个 | 2个 | 1个 |
2个 | 3个 | 1个 |
2个 | 4个 | 4个 |
2个 | 5个 | 6个 |
2个 | 6个 | 0 |
我想要 Output 应该如下所示:-
超过 | 跑步 |
---|---|
1个 | 10 |
2个 | 25 |
10 分:-(前 6 个球的总分,超过一分)和 25 分:-(前 6 个球的总分 + 第二个 6 个球)
或者
像下面这样的东西:-
超过 | 跑步 |
---|---|
1个 | 10 |
2个 | 15 |
10 分:-(前 6 个球的总分,超过一分)和 15 分:-(后 6 个球的总分)
如何在 Oracle/SQL Developer 中编写查询。
GROUP BY
the over
s 和SUM
runs
以获得 runs-per-over:
SELECT over,
SUM(runs) AS runs_per_over
FROM cricket_scores
GROUP BY over
然后使用解析 function 来获取运行总计:
SELECT over,
SUM(SUM(runs)) OVER (ORDER BY over) AS total_runs
FROM cricket_scores
GROUP BY over
其中,对于示例数据:
CREATE TABLE cricket_scores( Over, Balls, Runs ) AS
SELECT 1, 1, 1 FROM DUAL UNION ALL
SELECT 1, 2, 2 FROM DUAL UNION ALL
SELECT 1, 3, 4 FROM DUAL UNION ALL
SELECT 1, 4, 0 FROM DUAL UNION ALL
SELECT 1, 5, 1 FROM DUAL UNION ALL
SELECT 1, 6, 2 FROM DUAL UNION ALL
SELECT 2, 1, 3 FROM DUAL UNION ALL
SELECT 2, 2, 1 FROM DUAL UNION ALL
SELECT 2, 3, 1 FROM DUAL UNION ALL
SELECT 2, 4, 4 FROM DUAL UNION ALL
SELECT 2, 5, 6 FROM DUAL UNION ALL
SELECT 2, 6, 0 FROM DUAL;
输出:
超过 | TOTAL_RUNS 个 |
---|---|
1个 | 10 |
2个 | 25 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.