SQL语句 - 如何构建时间轴图

时间:2012-08-13 20:10:33

标签: sql

您好我有一个包含以下列的表:

  • ID
  • student_id数据
  • 得分(int)
  • scanned_date
  • close_date。

每周运行一个脚本。它每周为每个学生收集一个分数。每周的分数保持不变。当脚本第一次运行时,它会为每个学生输入ID,Student_id,score,scans_date和Null for Close_date。

对于每次额外扫描,如果分数与上周的分数相同,则脚本不执行任何操作。 但如果找到新分数,则在close_date字段中输入日期,并输入包含id,student_id,score,scans_date和Null的新行,以便关闭日期。

我正在尝试构建一个sql语句,它将帮助我构建一个时间轴图。对于每个不同的scanning_date,它将返回每个学生的所有分数的总和,以便我可以构建图形。

是可以做到的吗?

-Maria

1 个答案:

答案 0 :(得分:3)

以下查询提取所有不同的扫描日期,然后将它们连接回表格,以查找每个日期的活动记录。然后按日期汇总结果:

select dates.scanned_date,
       count(t.id) as numids,
       sum(score) as sumscore
from (select distinct scanned_date from t) as dates left outer join
     t
     on dates.scanned_date >= t.scanned_date and
        dates.scanned_date < t.close_date
group by dates.scanned_date
order by 1