如何在Oracle/SQL Developer中编写查询计算每回合得分及前两回合总分
Oracle SQL实现板球得分的两种统计形式
源表说明
源表Cricket_Scores包含字段"Over"(回合,注意:Over是Oracle关键字,需用双引号引用)、Balls(球数)、Runs(得分),样本数据如下:
- 1回合:第1球1分、第2球2分、第3球4分、第4球0分、第5球1分、第6球2分
- 2回合:第1球3分、第2球1分、第3球1分、第4球4分、第5球6分、第6球0分
形式一:累计总得分统计
需求输出(得分是从第一回合到当前回合的累计总和):
| 回合 | 得分 |
|---|---|
| 1 | 10 |
| 2 | 25 |
实现SQL
SELECT "Over" AS 回合, SUM(total_over_runs) OVER(ORDER BY "Over") AS 得分 FROM ( -- 先计算每个回合的单回合总得分 SELECT "Over", SUM(Runs) AS total_over_runs FROM Cricket_Scores GROUP BY "Over" ) t ORDER BY "Over";
形式二:单回合得分统计
需求输出(得分是当前回合的单独总得分):
| 回合 | 得分 |
|---|---|
| 1 | 10 |
| 2 | 15 |
实现SQL
SELECT "Over" AS 回合, SUM(Runs) AS 得分 FROM Cricket_Scores GROUP BY "Over" ORDER BY "Over";
内容的提问来源于stack exchange,提问作者Vivek Patil
相关产品推荐
相关产品推荐

