mysql - 即使 mysql 中的值为零,如何在 Q1、Q2、Q3、Q4 中显示值为零

标签 mysql

我想显示 Q1、Q2、Q3、Q4,尽管值是空或零...我的查询是这样的

Select Coalesce(Quarter(day_date), 0), year(day_date)
from daily
group by year(day_date)
order by year(day_date) 

但当 Q1、Q2、Q3、Q4 无值或为零时,它仍然排除该值

最佳答案

您可以使用交叉连接来生成数据中年份和季度的所有组合:

Select y.yyyy, q.qq, count(d.day_date)
from (select distinct year(day_date) as yyyy from daily) y cross join
     (select 1 as qq union all select 2 union all select 3 union all select 4) q left join
     daily d
     on year(d.day_date) = y.yyyy and
        quarter(d.day_date) = q.qq
group by y.yyyy, q.qq
order by y.yyyy, q.qq;

实际上,只有当您确实想要从 daily 表中计算某些内容(例如计数)时,才需要 左连接

关于mysql - 即使 mysql 中的值为零,如何在 Q1、Q2、Q3、Q4 中显示值为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41864931/

相关文章:

javascript - 具有建议/推荐功能的视频网站

javascript - NodeJS : Create api that will manage to generate the for loop as dynamic based on key value

MySQL 到 MariaDB - INSERT INTO with WHERE NOT EXIST

mysql - 调试陈旧的 Ruby 进程

php - 如何从mysql中的逗号分隔列值进行搜索

MySql 导入奇怪的行为

MYSQL - 具有 in 子句的删除查询中的语法错误

mysql - 仅当有新图像要上传时才取消链接

php - Opencart 2.2.0最新页面-按两个参数排序

mysql - 如何查看执行SQL语句的准确时间?