我有一个问题是编写正确的sql查询,该查询应根据国家和网站选择两个日期之间的最小/最大/平均持续时间.
SELECT v.country as country, v.site as site,
COUNT(*) as N --,
--MAX(list of durations in days between discovered date to repored date on each violation by country and site) as "Maximum",
--MIN(list of durations in days between discovered date to repored date on each violation by country and site) as "Minimum",
--AVG(list of durations in days between discovered date to repored date on each violation by country and site) as "Mean"
FROM violations v
WHERE v.trial_id = 3
GROUP BY ROLLUP (v.country, v.site)
Run Code Online (Sandbox Code Playgroud)
这是我的SQLFIDDLE,其中包含改进注释行所需的数据结构和查询.
请问你能帮帮我吗?
使用Oracle,日期存储为偏移量,因此您只需从另一个日期中减去1个日期.有关更多信息,请参阅日期算术
SELECT v.country as country, v.site as site,
COUNT(*) as N,
MAX(reporded_date - discovered_date) as "Maximum",
MIN(reporded_date - discovered_date) as "Minimum",
AVG(reporded_date - discovered_date) as "Mean"
FROM violations v
WHERE v.trial_id = 3
GROUP BY ROLLUP (v.country, v.site)
Run Code Online (Sandbox Code Playgroud)
请注意,您提供的测试数据总是相隔1天,所以我也在我的小提琴中更新了(对于德国).
| 归档时间: |
|
| 查看次数: |
770 次 |
| 最近记录: |