0

我有 2 个查询:

select zam_klt_id,zam_order_date, count(*) as sum from orders
group by rollup (zam_order_date,zam_klt_id);

产生输出:

ZAM_KLT_ID ZAM_order_date        SUM
---------- ------------------- ----------
  1002 98/03/13                     1 
       98/03/13                     1 
  1004 98/03/14                     1 
       98/03/14                     1 
  1003 98/09/11                     1 
       98/09/11                     1 
  1003 99/01/05                     1 
       99/01/05                     1 
  1003 99/03/01                     1 
       99/03/01                     1 
  1003 99/07/26                     1 
       99/07/26                     1 
  1003 99/10/30                     1 
       99/10/30                     1 
  1002 00/05/08                     1 
       00/05/08                     1 
  1004 00/06/14                     1 
       00/06/14                     1 
       00/07/12                     1 
       00/07/12                     1 
  1000 00/12/10                     2 
       00/12/10                     2 
  1004 00/12/21                     1 
       00/12/21                     1 
                                   13 

没关系,在每个日期下都有简短的摘要(计数),例如

  1000 00/12/10                     2 
       00/12/10                     2 

但是后来我想知道每年有多少客户下订单,所以我更改了以前的查询(zam_order_date 更改为 to_char(zam_order_date,'yyyy'))

select zam_klt_id,to_char(zam_order_date,'yyyy'), count(*) as sum from orders
group by rollup ((to_char(zam_order_date,'yyyy'),zam_klt_id));

会产生输出

ZAM_KLT_ID TO_CHAR(ZAM_order_date,'YYYY')        SUM
---------- ----------------------------------- ----------
  1002 1998                                         1 
  1003 1998                                         1 
  1004 1998                                         1 
  1003 1999                                         4 
       2000                                         1 
  1000 2000                                         2 
  1002 2000                                         1 
  1004 2000                                         2 
                                                   13 

9 rows selected 

这次在每个日期(在这种情况下为年份)下没有摘要,我认为输出应该如下所示:

ZAM_KLT_ID TO_CHAR(ZAM_order_date,'YYYY')        SUM
---------- ----------------------------------- ----------
  1002 1998                                         1 
  1003 1998                                         1 
  1004 1998                                         1 
      *1998*                                         *3*
etc

这次为什么不加summary,是不是跟to_char函数有关系?

4

0 回答 0