【发布时间】:2018-09-20 02:16:48
【问题描述】:
假设我有一个包含三列和以下数据的表:
* gamedate,playername,pointsScored
* 20180101,George,34
* 20180102,George,37
* 20180103,George,38
* 20180104,George,3
* 20180105,George,35
* 20180106,George,37
* 20180107,George,31
* 20180108,George,31
* 20180109,George,32
* 20180110,George,7
我正在寻找一个sql query,它可以告诉我该玩家平均连续多少场比赛可以保持 30+ 的分数。我知道它必须是某种group by 函数,但我有点坚持如何制定这个查询。这是Oracle table,如果这有什么不同的话。
一些额外的测试日期:
with
inputs(gamedate,playername,pointsscored) as (
select to_date('20180912','yyyymmdd'), 'George',52 from dual union all
select to_date('20180907','yyyymmdd'), 'George',47 from dual union all
select to_date('20180829','yyyymmdd'), 'George',9 from dual union all
select to_date('20180823','yyyymmdd'), 'George',55 from dual union all
select to_date('20180818','yyyymmdd'), 'George',49 from dual union all
select to_date('20180811','yyyymmdd'), 'George',58 from dual union all
select to_date('20180805','yyyymmdd'), 'George',31 from dual union all
select to_date('20180730','yyyymmdd'), 'George',40 from dual union all
select to_date('20180720','yyyymmdd'), 'George',44 from dual union all
select to_date('20180712','yyyymmdd'), 'George',45 from dual union all
select to_date('20180707','yyyymmdd'), 'George',29 from dual union all
select to_date('20180701','yyyymmdd'), 'George',-5 from dual union all
select to_date('20180626','yyyymmdd'), 'George',46 from dual union all
select to_date('20180620','yyyymmdd'), 'George',22 from dual union all
select to_date('20180614','yyyymmdd'), 'George',49 from dual union all
select to_date('20180609','yyyymmdd'), 'George',40 from dual union all
select to_date('20180602','yyyymmdd'), 'George',40 from dual
)
【问题讨论】:
-
试图了解问题...在您的示例中,我们是否正在查看两连胜,三场比赛中的一场和五场比赛中的另一场,并且您要寻找的平均数是 4?不管有多少场得分低于30分的比赛是在牛排之间,还是在第一场之前或最后一场之后?
-
是的,mathguy 是正确的