【发布时间】:2016-04-07 09:57:50
【问题描述】:
我有一个表,其中包含有关日志的信息,以了解网站页面上的点击量。
这是向我展示上述内容的查询:
select pageview_page, DATE(pageview_date) as pageview_date, count(*) as view_count
from pageviews
group by pageviews.pageview_page, DAY(pageviews.pageview_date)
order by pageviews.pageview_date desc
结果如下:
Page Day view_count
index 2016-01-12 50
index 2016-01-11 10
index 2016-01-10 20
contact 2016-01-12 5
contact 2016-01-11 5
PD:在日期上使用desc,因为图表必须从最近的日期开始。
注意:在上表中,contact 在2016-01-10 日不存在,这意味着那天没有人使用该页面。
我想让查询显示0,如果该日期没有任何内容,我该如何实现?结果必须如下所示
Page Day view_count
index 2016-01-12 50
index 2016-01-11 10
index 2016-01-10 20
contact 2016-01-12 5
contact 2016-01-11 5
contact 2016-01-10 0 <-------- (I want this to appear, as it is missing in the table above, in the first table)
我们以接下来的 3 个日期为例:2016-01-10、2016-01-11、2016-01-12
重点是按天查看统计,我用next来获取上面的日期:
select DATE(pageview_date) as pageview_date from pageviews GROUP by DAY(pageview_date)
我已尝试将IN 和NOT IN 与上述查询结合使用,但我无法使其正常工作。
【问题讨论】:
-
@RyanVincent 是的,但在上面的查询中,我已经有好几天了。我只是尝试过,但似乎不起作用,我没有得到任何回报。
-
@RyanVincent select DATE(pageview_date) as pageview_date from pageviews GROUP by DAY(pageview_date) 有我需要的所有日期
标签: mysql sql database mariadb