mysql - 合并找到的结果和未找到的结果

标签 mysql sql database mariadb

我有一个表,其中包含有关日志的信息,以了解网站页面上的点击次数。

这是向我显示上述内容的查询:

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,因为图表必须从最新日期开始。

注意:在上表中,联系人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)

我已经尝试将 INNOT IN 与上面的查询结合使用,但我无法让它工作。

最佳答案

我不确定 MySQL 中的 DAY 函数,但通过查看你的第一个查询,我认为你可以做这样的事情 -

select T2.pageview_page AS pageview_page,
       T1.pageview_date AS pageview_date,
       (select count(*)
          from pageviews t3
         where t3.pageview = t2.pageview
           and DAY(t3.pageview_date) = t1.pageview_date) as view_count
  from (select distinct DAY(pageview_date) pageview_date FROM pageviews) t1,
       (SELECT DISTINCT pageview_page FROM pageviews) t2
 group by pageview_page, pageview_date
 order by pageview_date desc

关于mysql - 合并找到的结果和未找到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36472695/

相关文章:

php - 我想使用 mysql 数据库的内容显示不同的页面

mysql - 插入包含字段 "from"和 "to"的 Mysql 表时出错

mysql - Mysql 列出重复次数超过一定值的条目

sql - 无法让数据库镜像见证连接

database - 使用 Booksleeve 和 Redis 进行检查和设置 (CAS) 操作

mysql - 我如何从strongloop中的MySql连接器获取用户详细信息并删除 "Authorization Required"

php artisan 迁移: PDOException could not find driver

SQL oracle - 如何从列中获取最大值,添加一个,格式化它并与更多值连接

sql - 神谕 : why 'as' keyword causes the error ora-00933?

MySQL 错误 : not connected