oracle总和计算一系列日期

时间:2016-09-06 03:06:33

标签: sql oracle select count

我有一张Oracle表,过去两年里每天都有记录。日期表只有一列存储日期值。 我有一个记录电子邮件打开的第二个表。列是subscriber_id, time_opened,消息ID。

我想制作一份报告,其中包括日期表中的每个日期和 还有一个唯一的subscriber_id计数,在过去180天的打开表中有记录。 我希望不使用循环就能做到这一点,但如果这是唯一的选择,我愿意接受建议。

1 个答案:

答案 0 :(得分:1)

您可以加入两个表并应用聚合count函数:

SELECT    d.date_column, COALESCE(COUNT(DISTINCT subscriber_id), 0)
FROM      dates d
LEFT JOIN subscribsers s ON d.date_column = TRUNC(s.time_opened) 
WHERE     d.date_column >= SYSDATE - 180
GROUP BY  d.date_column