精华内容
下载资源
问答
  • oracle按月分组查询

    千次阅读 2019-03-20 16:44:53
    1、今天遇到需求需要统计数据,数据库中只有日期字段(日期字段为 2018-01-01 11:11:11),现在要按照月份等等分组查询查询了很多博客,最终实现代码。 (如果大家不想看思路,请直接跳转第三步) 如图所示,...

    1、今天遇到需求需要统计数据,数据库中只有日期字段(日期字段为 2018-01-01 11:11:11),现在要按照月份等等分组查询,查询了很多博客,最终实现代码。 (如果大家不想看思路,请直接跳转第三步)
                                                            
          如图所示,数据格式为这样,首先编写查询语句

          

     select count(*) as count,month_time from ( 
     select to_char(TO_DATE(t.date_time,'YYYY-MM-DD HH24:MI:SS'),'MM') as month_time from 
     tablename)  group by month_time order by month_time asc
     

       上面代码段tochar表示截取日期中mm字段,todate是把数据库字段中的日期转换为日期格式

       查询结果如下:

    2、我们不难发现,12月份没有数据,这并不是我想要的结果,如果12月份没有数据的话,上面的sql语句查询就没有12月份的数据,这时我们需要把sql语句再改造一下:

    (这里说下思路,首先拿上面的一张表,和一个日期表关联,这个日期表里面的数据就是1-12月份,然后我们再取值,但是我并不想这样再去创建一张表,然而代码怎么实现呢?)

    select '' || lpad(level, 2, 0) datevalue
              from dual
            connect by level < 13

    上面这条sql语句是查询一张空表,里面的数字是01-12的数据,结果如下

                       

    3、最终结合sql语句查询结果

    
     select t2.datevalue as timeDate,nvl(t1.count,0) as scanCount  from (
     select count(*) as count,month_time from ( 
     select to_char(TO_DATE(t.date_time,'YYYY-MM-DD HH24:MI:SS'),'MM') as month_time from table tablename)  group by month_time order by month_time asc) t1,
    ( select '' || lpad(level, 2, 0) datevalue
              from dual
            connect by level < 13) t2
             where t1.month_time(+) = t2.datevalue
     order by t2.datevalue

    最终查询结果如下:

                           

    这里我就不解释里面的oralce里面某些函数的用法,如果大家有什么函数不懂的话,可以借鉴一下百度

    展开全文
  • oracle按时间分组查询

    2014-08-21 15:16:00
    按月查询:  select count(*), to_char(column_name,''yyyy-mm'') from table_name group by to_char(column_name,''yyyy-mm''); 按周查询:  select count(*), to_char(column_name,'iw') from table_...
    • 按年查询:

      select count(*), to_char(column_name,'yyyy') from table_name group by  to_char(column_name,'yyyy');

    • 按月查询:

            select count(*), to_char(column_name,''yyyy-mm'') from table_name group by to_char(column_name,''yyyy-mm'');

    • 按周查询:

            select count(*), to_char(column_name,'iw') from table_name group by  to_char(column_name,'iw');

    转载于:https://my.oschina.net/u/1589895/blog/305144

    展开全文
  • oracle 跨年分组查询

    千次阅读 2016-09-06 17:16:19
    最近因为项目需求用到了分组 GROUP BY g.SHOP_ID, TO_CHAR(ds.stat_date,'IW')看之前的查询语句发现了语句不具备跨年分组的功能 于是乎添加上了年 GROUP BY g.SHOP_ID, TO_CHAR(ds.stat_date,'YYYYIW')本来...

    最近因为项目需求用到了按周分组

     GROUP BY g.SHOP_ID,
        TO_CHAR(ds.stat_date,'IW')

    看之前的查询语句发现了语句不具备跨年分组的功能 于是乎添加上了年

     GROUP BY g.SHOP_ID,
        TO_CHAR(ds.stat_date,'YYYYIW')

    本来认为这个问题就被简单的解决了 今天翻看代码的时候就想起了之前的一个关于跨年的问题
    于是查询了一下2015-12-01 2016-01-30 发现居然有201653

    解决方法很简单

     GROUP BY g.SHOP_ID,
        TO_CHAR(ds.stat_date,'IYYYIW')

    这个问题暂时算告一段落

    展开全文
  • oracle分组查询

    2015-11-28 10:04:06
    oracle分组查询数据 select BFMBIGNAME,projectaddress,BFMSMALLNAME from(select BFMBIGNAME,projectaddress,BFMSMALLNAME,row_number() over (partition by BFMBIGNAME order by REGISTERDATE) id from Project...
  • Oracle分组查询

    千次阅读 2018-08-12 22:24:59
    Oracle分组查询 select 组信息 from 表名 [where条件] group by 分组字段 [having分组条件] [order by 排序字段 asc|desc]; 常用的聚合函数: count(字段名|*):求总的记录数; sum(字段名):求和; avg...

    Oracle分组查询

    select 组信息 
    from 表名 
    [where条件] 
    group by 分组字段 
    [having分组条件] 
    [order by 排序字段 asc|desc];
    常用的聚合函数:
    count(字段名|*):求总的记录数;
    sum(字段名):求和;
    avg(字段名) :求平均值;
    max(字段名):求最大值;
    min(字段名):求最小值;
    --案例:查询每个部门的平均工资
    select deptno,round(avg(sal) ,2) as deptavgsal
    from emp
    group by deptno;
    
    --案例:查询每个部门的平均工资,大于2000的
    select deptno,round(avg(sal) ,2) as deptavgsal
    from emp
    group by deptno
    having  round(avg(sal) ,2) >2000;
    ----having 和 where的区别:where后面不能跟聚合函数
    --什么时候使用where条件,什么时候应该使用having条件?
    --1.如果分组前就能够确定的条件就使用where,如果分组后才能够确定的条件就使用having;
    --2. where条件不能够使用聚合函数;having可以使用聚合函数;   
    select语句执行顺序从先到后:
    from > where > group by> having > select > order by
    --为统计的结果count(*)取一个别名total,因为执行顺序的原因,即total这个别名只能在order by 上使用.
    --分组统计每个部门员工工资大于2000,并按照升序的方式显示每组人数大于1的结果
    
    select deptno,count(*)total 
    from emp where sal>2000 
    group by deptno 
    having count(*)>1 
    order by total asc;
    展开全文
  • Oracle日志分组查询天或者小时)Oracle日志分组天)Oracle查询SQL语句Oracle日志昨天分组小时)Oracle查询SQL语句 Oracle日志分组天) 按照日志生成日期进行分组统计Sql,如每日生成的访问日志有...
  • Oracle按日期分组统计数据

    万次阅读 2016-12-20 11:18:44
    昨天项目突然改了个需求,要求折线图的数据显示,必须按照三天,季度九天来分组统计数据,网上搜索了一堆,差点没找着相关的!还好找到了类似的,现整理下提供给有需要的大家参考参考! (本人是在Oracle数据库的环境下) 1....
  • oracle 分组查询查询

    千次阅读 2017-10-27 12:02:44
    分组查询 例: 统计平均工资大于2000的部门信息 -- 1.确定要查询的字段及表 select e.sal,d.deptno, d.dname, d.loc from emp e,dept d where e.deptno= d.deptno -- 2.统计平均工资及部门信息 select ...
  • Oracle 日期分组

    千次阅读 2018-05-18 21:28:26
    原文:https://blog.csdn.net/zhuyu19911016520/article/details/19685465如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14-2 -08 20...
  • 1.1分组函数 1.定义:分组函数作用于一组数据,并对一组数据返回一个值。 2.常用的分组函数: .AVG(求平均值) .SUM(求和) .MIN(求最小值) .MAN() .COUNT .WM_CONCAT(字符串拼加) 例如: 1.2 分组...
  • Oracle分组统计查询-分组查询

    千次阅读 2017-10-29 15:37:12
    【①确定要查询的数据来源】FROM 【②针对数据进行的筛选】WHERE 过滤条件 【③针对数据实现分组】GROUP BY 分组字段,分组字段,… 【④针对分组后的数据进行筛选】HAVING 分组后的过滤条件 【⑥针对返回结果...
  • oracle 日期分组查询

    千次阅读 2021-02-05 15:18:38
    自定义分组规则前景实现例子在此基础上查询时间所属时间段 前景 在做数据报表时,需要对某一时间段分组,以1小时为时间间隔统计各项数据,如9点-10点,10点-11点…,但是现在有种情况,时间有可能不是整点开始,会有...
  • 分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列。 规则: (1)如果使用了分组函数,或者是 group by ...
  • 主要介绍了Oracle分组查询group by用法规则详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • oracle 查询按月份分组

    万次阅读 2014-02-22 15:12:05
    如下表table1:  日期(exportDate) 数量(amount)  -------------- -----------  14-2 -08 20  10-3 -08 2  14-4 -08 
  • oracle学习分组查询查询

    千次阅读 2016-09-01 22:53:58
    oracle学习总结 group by 与order by运用 having运用与where区别 ----------------------------------------------------...group by用于对查询的结果分组统计,  having子句用于限制分组显示结果。  问题:如何
  • oracle分组查询

    2019-11-13 20:40:13
    ----分组查询&筛选学习: --关键字:group by 分组字段名,分组字段名.... --注意1:使用了分组后,在select语句中只允许出现分组字段和多行函数。 --注意2:如果是多字段分组,则先按照第一字段分组,然后每...
  • 分组查询 MIN MAX AVG COUNT SUM NVL –NVL(参数一,参数二) 函数可以使分组函数强制包含含有空值的记录 –NVL2(参数一,参数二,参数三) SELECT nvl2(null,’男’,’女’) FROM DUAL;–女 SELECT nvl2(‘M’...
  • Oracle 固定时间段分组查询

    千次阅读 2018-04-24 16:17:22
    SELECT count(SINGLE_PICKUP_STATION_NAME) as total,count(SINGLE_GETOFF_STATION_NAME) as total2,temp.SINGLE_PICKUP_STATION_NAME,temp.SINGLE_GETOFF_STATION_NAME,temp.TICKET_TYPE,temp.SINGLE_GETOFF_LINE...
  • ORACLE 数据字典、分组查询、多表查询     一、Oracle数据字典 数据字典是oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限...
  • ORACLE按日期分组写法

    千次阅读 2016-05-04 15:51:07
  • 主要介绍了python实现Oracle查询分组的方法,结合实例形式分析了python使用group by子句及having子句实现Oracle查询分组的相关操作技巧,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,005
精华内容 26,802
关键字:

oracle按月分组查询