我需要将表分组为15分钟间隔。我可以这样做:
select dateadd(minute, datediff(minute, 0, ts) / 15 * 15, 0), sum (goodpieces) from StationCount Group by dateadd(minute, datediff(minute, 0, ts) / 15 * 15, 0)
但是要在图表中显示返回的数据,我还需要插入没有任何数据且当前未出现在我的select语句中的间隔。我该如何插入这些?
用15分钟的增量创建一个带有所有可能时间戳的表,然后从该表向上面的查询进行LEFT JOIN。
SELECT * FROM timestamps LEFT JOIN (SELECT dateadd......) ON timestamps.timestamp = StationCount.ts
如果您知道图表始终涵盖24小时,则只需创建一个数字为0-95的表格,然后为每个条目将其添加到图表的开始时间。
SELECT * FROM (SELECT dateadd(minute, <starttime>, number*15) timestamp FROM numbers) timestamps LEFT JOIN (SELECT dateadd......) ON timestamps.timestamp = StationCount.ts