【问题标题】:SQL Grouping for the below example以下示例的 SQL 分组
【发布时间】:2018-04-19 15:21:44
【问题描述】:

我有一张如图所示的桌子。正如我在“预期结果”中提到的那样,我如何编写一个 sql 来获得结果

【问题讨论】:

  • 您是如何决定在 REFERENCE=A 中选择 SUB1 而不是 SUB2 的?如果参考日期=A 不同怎么办?选择哪一个?
  • 您应该解释为什么这是您的预期结果。不要指望读者必须猜测输入如何映射到输出;这是浪费时间,并且可能只会对某些示例数据产生正确的答案。此外,数据应包含在格式化的文本表格中,而不是图像。
  • 我用新图片编辑了问题。这是我的实际要求
  • 请在标签中指定您使用的数据库。

标签: sql grouping


【解决方案1】:

请检查以下 SQL Select 语句

select distinct
reference, 
first_value(subject) over (partition by reference, subject order by date), 
sum(mark1) over (partition by reference, subject), 
sum(mark2) over (partition by reference, subject), 
date
from actualdata

但是这里有很多未解决的问题, 首先,SUB2不知何故丢失 为了获得 SUB1,我使用了SQL first_value function,但不清楚哪个是第一个,另一个是接下来的。 而且我只根据参考对数据进行了分区。 也许我们应该在这里添加更多的列,比如日期?

【讨论】:

  • 我再次编辑了我的问题,请查找新图片
  • 威尔逊,我也更新了解决方案,请检查它是否适合你
猜你喜欢
  • 2018-09-28
  • 2020-11-24
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多