这是背景:我希望每天获得两个储备的平均含量。它们每天记录几次并插入到event_param列中的db中。有朝一日可能没有使用第二个储备。因此,我们没有关于保留内容的数据。这就是问题所在。
我告诉你我正在进行查询的表结构:
这是我的疑问:
SELECT * FROM
(SELECT cast(event_datetime as date) as day, event_param_2 as R1, AVG(event_param_3) as ContentR1
FROM events
WHERE upcNameId = 'Name'
AND event_datetime >= '2017-01-01 00:00:00'
AND event_datetime <= '2018-04-01 00:00:00'
AND event_code IN(52,53,54)
AND event_param_2 = 1
GROUP BY cast(event_datetime as date)
ORDER BY cast(event_datetime as date)asc) as r1reservecontent,
(SELECT cast(event_datetime as date) as day, event_param_2 as R2, AVG(event_param_3) as ContentR2
FROM events
WHERE upcNameId = 'Name'
AND event_datetime >= '2017-01-01 00:00:00'
AND event_datetime <= '2018-04-01 00:00:00'
AND event_code IN(52,53,54)
AND event_param_2 = 2
GROUP BY cast(event_datetime as date)
ORDER BY cast(event_datetime as date)asc)as r2reservecontent
正如你所看到的那样,我对每个储备的每天的平均分组和平均值。 结果如下:
但这不是我想要的。我希望只有一个日列,每天都会分隔内容。 没有给出R1或R2的日期将等于记录的最后一个内容。
我知道这是一个复杂的问题,当你有这些信息时很难解决,但如果你能帮助我,那就太好了。
这是来自表事件的一些示例数据。 event_param_2 =保留号码(= 1或2) event_param_3 =以千克为单位的内容
答案 0 :(得分:0)
我通过执行sql存储过程来解决它