现在的位置: 首页 > 综合 > 正文

网上摘录 数据分组处理

2013年07月22日 ⁄ 综合 ⁄ 共 2146字 ⁄ 字号 评论关闭

当数据重复的时候分组才有意义。

注意点:WHERE和HAVING的区别

  • WHERE:是在执行GROUP BY操作之前进行的过滤,表示从全部数据之中筛选出部分的数据,在WHERE之中不能使用统计函数;
  • HAVING:是在GROUP BY分组之后的再次过滤,可以在HAVING子句中使用统计函数;

示例:

select
    b.dept_code dept_id,
   decode(a.find_emp_code,'','小计:',a.find_emp_code) maker,
   count(a.request_id) list_num,
 (count(a.request_id)*to_number((select INFO_DETAIL_VALUE1 from equ_sys_info_detail where info_type_code = '075' and INFO_DETAIL_CODE='01'))) list_sum,
 to_number(null)     bath_num,
 (to_number(null)*to_number((select INFO_DETAIL_VALUE1 from equ_sys_info_detail where info_type_code = '075' and INFO_DETAIL_CODE='02'))) bath_sum
  
 from  EQU_MAINTAIN_REQUEST_ORDER a ,PER_INFO b
   where a.find_emp_code = b.emp_code and a.state_id not in(01,23,24,99) and b.dept_code <>'010301' and b.dept_code like '0103%' 
   group by b.dept_code,rollup(a.find_emp_code)

 

--查询结果  每个部门自动显示小计数据

 1 010302 3013 212 2120  
2 010302 3016 75 750  
3 010302 3017 37 370  
4 010302 3023 74 740  
5 010302 3024 115 1150  
6 010302 3043 82 820  
7 010302 3048 53 530  
8 010302 3107 18 180  
9 010302 3109 5 50  
10 010302 小计: 671 6710  
11 010303 3019 33 330  
12 010303 3020 47 470  
13 010303 3027 39 390  
14 010303 3029 52 520  
15 010303 3030 36 360  
16 010303 3044 119 1190  
17 010303 3046 68 680  
18 010303 3077 16 160  
19 010303 3092 4 40  
20 010303 3106 10 100  
21 010303 小计: 424 4240  
22 010304 3018 25 250  
23 010304 3022 219 2190  
24 010304 3031 38 380  
25 010304 3032 58 580  
26 010304 3039 69 690  
27 010304 3053 29 290  
28 010304 3081 38 380  
29 010304 3087 48 480  
30 010304 3105 19 190  
31 010304 3108 8 80  
32 010304 小计: 551 5510  
33 010305 3014 70 700  
34 010305 3035 27 270  
35 010305 3036 66 660  
36 010305 3038 10 100  
37 010305 3042 35 350  
38 010305 3047 52 520  
39 010305 3051 11 110  
40 010305 3054 166 1660  
41 010305 3076 42 420  
42 010305 3078 24 240  
43 010305 小计: 503 5030  
44 010306 3004 5 50  
45 010306 3008 30 300  
46 010306 3009 10 100  
47 010306 3055 4 40  
48 010306 小计: 49 490  
49 010308 3011 111 1110  
50 010308 3026 80 800  
51 010308 3034 44 440  
52 010308 3041 117 1170  
53 010308 3045 325 3250  
54 010308 3050 103 1030  
55 010308 3052 47 470  
56 010308 3079 71 710  
57 010308 3086 53 530  
58 010308 3097 4 40  
59 010308 小计: 955 9550  

【上篇】
【下篇】

抱歉!评论已关闭.