mysql统计数据,如何把空的也显示出来,我用group by,但是空的数据并不能显示出来,求解答............

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql统计数据,如何把空的也显示出来,我用group by,但是空的数据并不能显示出来,求解答............相关的知识,希望对你有一定的参考价值。

如何一次性把所有的都显示出来,包括空的数据.....
假如2月有两条数据,6,7,8月没数据的
比如我要统计一年中每个月的会员注册量,12个月都要统计,再按月份排序,每个月都要显示出来,没有的
就显示0条,我的语句是这样的 怎么把它都查出来, 能帮我解答一下吗? 我很急! select month,count(*) as num
from total where type='member_reg' group by month order by month asc

参考技术A 早说清楚啊

SELECT month,(case when type="member_reg" then count(*) when type="Null" then 0 end) as tal FROM `total` group by month order by month ;本回答被提问者采纳
参考技术B 用自连接啊!追问

请问怎么用自连接呀?
id month(月份) time(时间) type(统计的类型)
1 2 1393558495 member_reg (会员注册量)
表名total

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

以下是我的sql:(我写的这条不能显示没有数据的这个月的数量 0)
SELECT
DATE_FORMAT(createTime, '%Y-%m') AS date,
count(*) AS count
FROM
data_shortmessage
WHERE
createTime > (
CONCAT(
DATE_FORMAT(now(), '%Y'),
'-01-01'
)
)
AND createTime <= (
CONCAT(
DATE_FORMAT(now(), '%Y'),
'-12-31'
)
)
GROUP BY
YEAR (createTime),
MONTH (createTime);

可以加个时间维度表,以时间维度表为主表!(id,month)id 是和你的表左连接,month是1到12月,一楼说的几个方法!应该不好实现的吧?不用写存储过程那么复杂!举个例子
select a.rq,
b.xssr
from date_table a left jion table1 b
on a.id=b.id
参考技术A 可以考虑用NVL函数或者case语句实现追问

我自己就在尝试用case语句写的,在数据库执行,就是不出来为0数量的这个月,所以才来求教高手帮忙搞定一下

追答

我理解了,标准根本就不存在这个数据对吧,这样你想显示是这个意思吧

追问

对的,比如查询2015年的,我数据库有1月 2月 5月数据 我需求是,同时也要统计出3 ,4 月的数量,只不过是用0显示出来

追答

这个就没办法了,除非数据库存在这个数据,否则那就得用存储过程实现或者SQL取到值后外部程序进行处理

追问

哦,那我就去找找存储的吧,谢谢你指导啊

以上是关于mysql统计数据,如何把空的也显示出来,我用group by,但是空的数据并不能显示出来,求解答............的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

mysql inner join如何显示记录为空的数据

数据库中如何查找日期为空的数据

我将boolean插入mysql中bit类型,读出来是false和true,但是用false查询用,是空的

前台显示和后台 数据库数据不一致, 我用的是JSF ,JPA MYSQL.

在网页中如何将数据库的数据显示出来