oracle group by分类查询汇总 没数据的时候让此项显示为0

2024-04-27 17:32

本文主要是介绍oracle group by分类查询汇总 没数据的时候让此项显示为0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.表数据

表名:table

iddate
12019-05
22019-06
32019-04
42019-06

2.需求

现在要求按照指定五个月份统计每个月的数量,这五个月份为:
(‘2019-02’,‘2019-03’,‘2019-04’,‘2019-05’,‘2019-06’)
查询出来的数据应该是这样的

datenum
2019-020
2019-030
2019-041
2019-051
2019-062

3.实现

3.1按照常规写法

select date,count(*) as num from  table
where DATE in ('2019-02','2019-03','2019-04','2019-05','2019-06')
group by dates
order by dates desc

然后发现出来的数据是这样的

datenum
2019-041
2019-051
2019-062

3.2解决
我想到的解决思路是将这几个月份查成一张临时表做一个left join 这样月份就固定会显示在那,再使用nvl判断num为NULL的时候添加为0

select A.date,nvl(num,0) 
from (
--固定写法,按照逗号分隔成一列SELECT DISTINCT REGEXP_SUBSTR ('2019-02,2019-03,2019-04,2019-05,2019-06','[^,]+',1,LEVEL) as dateFROM DUALCONNECT BY REGEXP_SUBSTR ('2019-02,2019-03,2019-04,2019-05,2019-06','[^,]+',1,LEVEL) IS NOT NULL
) A
LEFT JOIN 
(
--归类查询select count(*) as num,date from GREEN_ATTENDANCEwhere DATE in ('2019-02','2019-03','2019-04','2019-05','2019-06')group by date
) B
on A.date=B.date

这样写会有点繁琐了,如有更好的办法请指教

这篇关于oracle group by分类查询汇总 没数据的时候让此项显示为0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941101

相关文章

JAVA SE 学习笔记-第5节 数据类型转换

1_1_5_01_数据类型转换_自动转换.flv 自动类型转换: 1_1_5_02_数据类型转换_强制转换.flv 强制类型转换: 1_1_5_03_数据类型转换_注意事项.flv 数据溢出 1_1_5_04_ASCII编码表.flv ASCII码表,我们只需要知道如下几个字符的对应值,其他的查表就可以 Unicode码表:

【PyTorch与深度学习】6、PyTorch中搭建分类网络实例

课程地址 最近做实验发现自己还是基础框架上掌握得不好,于是开始重学一遍PyTorch框架,这个是课程笔记,此节课很详细,笔记记的比较粗,这个视频课是需要有点深度学习数学基础的,如果没有数学基础,可以一边学一边查一查 1. Transforms 我们导入到数据集中的图片可能大小不一样,数据并不总是以训模型所需的最终处理形式出现。我们使用Transforms对数据进行一些操作,使其适合训练(比如统

uvc-录制并显示到界面-QT

效果: 代码: ~/code/MediaPlayer$ tree .├── main.cpp├── mediaplayer.cpp├── mediaplayer.h├── MediaPlayer.pro└── MediaPlayer.pro.user MediaPlayer.pro #-----------------------------------------------

ThinkPHP查询两个数据库表,查询结果复杂json拼接及返回

废话不多少直接上代码 $res = Db::table('数据表名')->where('字段名', 传递的值) ->select();//dump($res);foreach($res as $key=>$value){//第二个数据库查询,与第一个数据库某字段相关联$res[$key]['detail']=Db::table('

C#拼接长字符串,根据是否查询到值来动态赋值。

//查询语句写在这try{while (reader.Read()){if (reader.HasRows){JSONstring += "{";JSONstring += "\"" + "wx_id" + "\":\"" + reader.GetString("wx_id") + "\",";beNeck = reader.GetString("beNeck");if (beNeck != "0

微信小程序嵌套查询,防止并发查询。

微信小程序多个请求防止并发处理。 wx.request({url: '你的地址',data: {//携带的参数},success: function (res) {//成功 do something},fail: function () { //失败 do something},complete: function () {//不论成功还是失败都会到这里面。第二个请求放在第一个请求的compl

微信公众平台使用JSSDK网页调起扫码并获取扫码数据(PHP)

微信公众平台使用JSSDK网页调起扫码并获取扫码数据 初学者,部分css样式在网上扒下来的,功能实现了,代码很糙,非常糙,望海涵,也希望大神多指导、 QQ:961052877,有问题大家一起交流。可以互相学习。 得到你的APPID与AppSecret获取到access_token与ticket配置wx.config调用扫码二维码与条形码处理获取返回值关于苹果端网页扫码调起的问题处理2017年1

Unity WebGL全屏显示

一、删除footer节点 二、删除最下面点击事件绑定 修改Canvas宽高 canvas.style.width = "960px";canvas.style.height = "600px";改成canvas.style.width = document.documentElement.clientWidth+"px";canvas.style.height = docum

MatLab建模学习笔记6——数据拟合方法

曲线拟合也叫曲线逼近,只要求拟合曲线能合理的反映数据的基本趋势,并不要求曲线一定通过数据点。曲线拟合有不同的判别准则,包括偏差的绝对值之和最小、偏差的最大绝对值最小和使偏差的平方和最小(即最小二乘法)。 一、多项式的数据拟合: polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。其中X、Y是数据点的值,N代表最高次幂。 polyval(P,XI):代表返回的多项式系数。其中,

MatLab建模学习笔记5——MatLab向TXT中读写数据

一、load函数:读入TXT文本文件的内容,save命令保存数据到指定的文件,如文件不存在则自动创建该文件。 二、Textread函数:按格式读取TXT文本文件中的内容,函数格式textread(filename,formate,N,’headerlines’,M),其中filename代表读取的文件名,formate代表读取的格式,如“%d”、“%f”等,N代表读取多少行,headerli