【发布时间】:2015-06-01 21:55:06
【问题描述】:
我希望将查询中的平均分数分组到日期的每一天。我知道您可以通过以下方式获取日期的星期等部分:
'Week ' + CAST(DATEPART(wk, s.date_taken) AS (varchar(2)) Week
这不是我所追求的。我在加入期间过滤我的结果以获得特定日期之前的四个星期和之后的四个星期,如下所示:
INNER JOIN
swa_speeding AS s
ON i.policy_id = s.policy_id
AND s.date_taken BETWEEN DATEADD(WEEK,-4,i.note_date) AND DATEADD(WEEK,4,i.note_date)
问题是表swa_speeding 和i.note_date 连接了很多数据,每条记录都发生了变化。
实际上,我正在寻求帮助的是将所有结果分组到平均值相对于 i.note_date 的那一天,i.note_date 是结果的中点。结果应该如下所示:
这是我目前的查询:
;SELECT
datepart(day, s.date_taken) [Day],
AVG(s.dlyspeed)
FROM
swa_intervention AS i
INNER JOIN
swa_speeding AS s
ON i.policy_id = s.policy_id
AND s.date_taken BETWEEN DATEADD(WEEK,-4,i.note_date) AND DATEADD(WEEK,4,i.note_date)
INNER JOIN
swa_policy AS p
ON i.policy_id = p.id
WHERE
i.id = 431
GROUP BY
datepart(day, s.date_taken)
希望这对我想要实现的目标有意义吗?
【问题讨论】:
标签: sql sql-server group-by