奇怪的窗口功能行为

甘菊

我有以下数据集:

 player | score |        day   
--------+-------+------------
   John |     3 | 02-01-2014
   John |     5 | 02-02-2014
   John |     7 | 02-03-2014
   John |     9 | 02-04-2014
   John |    11 | 02-05-2014
   John |    13 | 02-06-2014
   Mark |     2 | 02-01-2014
   Mark |     4 | 02-02-2014
   Mark |     6 | 02-03-2014
   Mark |     8 | 02-04-2014
   Mark |    10 | 02-05-2014
   Mark |    12 | 02-06-2014

给定两个时间范围:

  1. 02-01-2014..02-03-2014
  2. 02-04-2014..02-06-2014

我需要获取给定时间范围内每个玩家的平均得分。我想要达到的最终结果是:

 player | period_1_score | period_2_score
--------+----------------+----------------
   John |              5 |             11
   Mark |              4 |             10

我想到的原始算法是:

  1. SELECT用两个值执行,这是通过将每个时间段的分数集划分为两个而得出的
  2. 首先SELECT,执行另一个,按玩家名称分组。

我陷入了第一步:运行以下查询:

SELECT
  player,
  AVG(score) OVER (PARTITION BY day BETWEEN '02-01-2014' AND '02-03-2014') AS period_1,
  AVG(score) OVER (PARTITION BY day BETWEEN '02-04-2014' AND '02-06-2014') AS period_2;

让我得到错误的结果(请注意分数period1period2平均分数的分数相同:

 player | period_1_score | period_2_score
--------+----------------+----------------
   John |              5 |              5
   John |              5 |              5
   John |              5 |              5
   John |              5 |              5
   John |              5 |              5
   John |              5 |              5
   Mark |              4 |              4
   Mark |              4 |              4
   Mark |              4 |              4
   Mark |              4 |              4
   Mark |              4 |              4
   Mark |              4 |              4

我想我不完全了解窗口功能的工作原理...我有2个问题:

  1. 我的查询出了什么问题?
  2. 我该怎么办?
用户名

您不需要为此提供窗口功能。尝试:

select 
player
,avg(case when day BETWEEN '02-01-2014' AND '02-03-2014' then score else null end) as period_1_score
,avg(case when day BETWEEN '02-04-2014' AND '02-06-2014' then score else null end) as period_1_score
from <your data>
group by player

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新到Swift 3后奇怪的转义功能行为

来自分类Dev

Android拆分功能行为

来自分类Dev

SQL:奇怪的查询性能行为

来自分类Dev

Java BigDecimal奇怪的性能行为

来自分类Dev

SQL:奇怪的查询性能行为

来自分类Dev

带有匿名功能的功能行为

来自分类Dev

“ foreach”导致我的功能行为异常

来自分类Dev

前向脱位改变功能行为?

来自分类Dev

ZSH功能行为?(运行C ++)

来自分类Dev

使用OpenGL和GLSL的SSAO算法的奇怪性能行为

来自分类Dev

C ++未执行的代码更改功能行为?

来自分类Dev

R中意外的套用功能行为

来自分类Dev

如何专门化(重载)单个类型的功能行为?

来自分类Dev

C ++未执行的代码更改功能行为?

来自分类Dev

“断言”功能:奇怪的行为

来自分类Dev

“断言”功能:奇怪的行为

来自分类Dev

“读取”系统功能的奇怪行为

来自分类Dev

Java Applet在最新JRE(7.55+)上的奇怪性能行为

来自分类Dev

PL / SQL过程DBMS_OBFUSCATION_TOOLKIT.MD5的异常功能行为

来自分类Dev

写终极版减速器和行动同样的功能行为

来自分类Dev

predsort / 3的可能行为

来自分类Dev

基本功能的奇怪行为

来自分类Dev

Coffeescript和护照:奇怪的行为,附加功能

来自分类Dev

奇怪的行为存储功能导致OCaml

来自分类Dev

熊猫行功能行迭代

来自分类Dev

从窗口对象中删除属性时的奇怪行为

来自分类Dev

奇怪的UI行为(缺少字体,旧的GTK外观窗口,...)

来自分类Dev

窗口调整大小时的 CSS 网格布局奇怪行为

来自分类Dev

带有替换功能的JSON.stringify中的奇怪行为