【问题标题】:Calculate Total Runs For Each Over and I Also Want Sum of First and Second Over. Table Structure is Given Below计算每一轮的总跑动次数,我还想要第一轮和第二轮的总和。表结构如下
【发布时间】:2023-01-16 18:20:22
【问题描述】:

**源表:- Cricket_Scores **

Over Balls Runs
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

我希望输出应该如下所示:-

Over Runs
1 10
2 25

10 分:-(前 6 个球的总分数为 1 分)& 25 分:-(前 6 个球的总分 + 后 6 个球)

或者

像下面这样的东西:-

Over Runs
1 10
2 15

10 分:-(前 6 个球的总分数为 1 分)& 15 分:-(第二个 6 球的总分)

如何在 Oracle/SQL Developer 中编写查询。

【问题讨论】:

  • 请提供您当前的代码并描述它的问题所在。

标签: sql oracle


【解决方案1】:

GROUP BYovers 和SUMruns 获得运行次数:

SELECT over,
       SUM(runs) AS runs_per_over
FROM   cricket_scores
GROUP BY over

然后使用分析函数获取运行总计:

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;

输出:

OVER TOTAL_RUNS
1 10
2 25

fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    相关资源
    最近更新 更多