-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGroupHav ass.txt
501 lines (399 loc) · 123 KB
/
GroupHav ass.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
SQL> SELECT SUM(SAL),JOB
2 FROM EMP
3 GROUP BY JOB;
SUM(SAL) JOB
---------- ---------
4150 CLERK
5600 SALESMAN
5000 PRESIDENT
8275 MANAGER
6000 ANALYST
SQL> SELECT HIREDATE,COUNT(*)
2 FROM EMP
3 GROUP BY HIREDATE
4 HAVING COUNT(*)>=3;
no rows selected
SQL> SELECT DEPTNO,SUM(SAL)
2 FROM EMP
3 GROUP BY DEPYNO
4 HAVING COUNT(*)<2 AND
5 ;
*
ERROR at line 5:
ORA-00936: missing expression
SQL> ED
Wrote file afiedt.buf
1 SELECT DEPTNO,SUM(SAL)
2 FROM EMP
3 WHERE SAL>9000
4 GROUP BY DEPYNO
5* HAVING COUNT(*)>2
6 //
7 /
//
*
ERROR at line 6:
ORA-00936: missing expression
SQL> ED
Wrote file afiedt.buf
1 SELECT DEPTNO,SUM(SAL)
2 FROM EMP
3 WHERE SAL>9000
4 GROUP BY DEPYNO
5* HAVING COUNT(*)>2
6 /
GROUP BY DEPYNO
*
ERROR at line 4:
ORA-00904: "DEPYNO": invalid identifier
SQL> ED
Wrote file afiedt.buf
1 SELECT DEPTNO,SUM(SAL)
2 FROM EMP
3 WHERE SAL>9000
4 GROUP BY DEPTNO
5* HAVING COUNT(*)>2
SQL> /
no rows selected
SQL> SELECT COUNT(*),AVG(SAL)
2 FROM EMP
3 GROUP BY DEPTNO
4 HAVING SAL<COMM;
HAVING SAL<COMM
*
ERROR at line 4:
ORA-00979: not a GROUP BY expression
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),AVG(SAL)
2 FROM EMP
3 WHERE SAL<COMM
4* GROUP BY DEPTNO
SQL> /
COUNT(*) AVG(SAL)
---------- ----------
1 1250
SQL> SELECT COUNT(*),SAL
2 FROM EMP
3 GROUP BY SAL
4 HAVING COUNT(*)<1;
no rows selected
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),SAL
2 FROM EMP
3 GROUP BY SAL
4* HAVING COUNT(*)>=1
SQL> /
COUNT(*) SAL
---------- ----------
1 2450
1 5000
1 1300
2 1250
1 2850
1 2975
1 1100
2 3000
1 800
1 1600
1 1500
1 950
12 rows selected.
SQL> SELECT ENAME,COUNT(*)
2 FROM EMP
3 GROUP BY ENAME
4 HAVIBG COUNT(*)>1;
HAVIBG COUNT(*)>1
*
ERROR at line 4:
ORA-00933: SQL command not properly ended
SQL> ED
Wrote file afiedt.buf
1 SELECT ENAME,COUNT(*)
2 FROM EMP
3 GROUP BY ENAME
4* HAVING COUNT(*)>1
SQL> /
no rows selected
SQL> SELECT DEPTNO,AVG(SAL)
2 FROM EMP
3 GROUP BY DEPTNO
4 HAVING AVG(SAL) BETWEEN 2500 AND 3000;
DEPTNO AVG(SAL)
---------- ----------
10 2916.66667
SQL> SELECT DEPTNO,AVG(SAL)
2 FROM EMP
3 WHERE SAL BETWEEN 2500 AND 3000
4 GROUP BY DEPTNO;
DEPTNO AVG(SAL)
---------- ----------
30 2850
20 2991.66667
SQL> SELECT COUNT(*),SAL*12 "ANNUAL SAL"
2 FROM EMP
3 WHERE JOB IN 'MANAGER' OR 'ANALYST'
4 GROUP BY DEPTNO
5 HAVING SAL*12 LIKE '%0';
GROUP BY DEPTNO
*
ERROR at line 4:
ORA-00920: invalid relational operator
SQL> SELECT COUNYT(*),DEPTNO
2 FROM EMP
3 WHERE JOB IN 'MANAGER' OR 'ANALYST' AND SAL*12 LIKE '%0';
SELECT COUNYT(*),DEPTNO
*
ERROR at line 1:
ORA-00936: missing expression
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),DEPTNO
2 FROM EMP
3* WHERE JOB IN 'MANAGER' OR 'ANALYST' AND SAL*12 LIKE '%0'
SQL> /
WHERE JOB IN 'MANAGER' OR 'ANALYST' AND SAL*12 LIKE '%0'
*
ERROR at line 3:
ORA-00920: invalid relational operator
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE JOB IN 'MANAGER' OR 'ANALYST' AND SAL*12 LIKE '%0'
4* GROUP BY DEPTNO
SQL> /
WHERE JOB IN 'MANAGER' OR 'ANALYST' AND SAL*12 LIKE '%0'
*
ERROR at line 3:
ORA-00920: invalid relational operator
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE JOB IN('MANAGER' OR 'ANALYST')AND SAL*12 LIKE '%0'
4* GROUP BY DEPTNO
SQL> /
WHERE JOB IN('MANAGER' OR 'ANALYST')AND SAL*12 LIKE '%0'
*
ERROR at line 3:
ORA-00907: missing right parenthesis
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE JOB IN('MANAGER','ANALYST') AND SAL*12 LIKE '%0'
4* GROUP BY DEPTNO
SQL> /
COUNT(*) DEPTNO
---------- ----------
1 30
3 20
1 10
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE JOB IN('MANAGER') OR JOB IN('ANALYST') AND SAL*12 LIKE '%0'
4* GROUP BY DEPTNO
SQL> /
COUNT(*) DEPTNO
---------- ----------
1 30
3 20
1 10
SQL> SELECT COUNT(*)
2 FROM EMP
3 GROUP BY DEPTNO
4 HAVING JOB IN 'CLERK';
HAVING JOB IN 'CLERK'
*
ERROR at line 4:
ORA-00979: not a GROUP BY expression
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*)
2 FROM EMP
3 WHERE JOB IN 'CLERK'
4* GROUP BY DEPTNO
5 /
COUNT(*)
----------
1
2
1
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE JOB IN 'CLERK'
4* GROUP BY DEPTNO
SQL> /
COUNT(*) DEPTNO
---------- ----------
1 30
2 20
1 10
SQL> SELECT MAX(SAL),DEPTNO
2 FROM EMP
3 WHERE JOB='MANAGER'
4 GROUP BY DEPTNO;
MAX(SAL) DEPTNO
---------- ----------
2850 30
2975 20
2450 10
SQL> SELECT * FROM EMP;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
SQL> SELECT COUNT(*),SAL
2 FROM EMP
3 GROUP BY SAL
4 HAVING COUNT(*)>1;
COUNT(*) SAL
---------- ----------
2 1250
2 3000
SQL> SELECT DEPTNO,COUNT(*)
2 FROM EMP
3 WHERE DEPTNO!=10;
SELECT DEPTNO,COUNT(*)
*
ERROR at line 1:
ORA-00937: not a single-group group function
SQL> ED
Wrote file afiedt.buf
1 SELECT DEPTNO,COUNT(*)
2 FROM EMP
3 WHERE DEPTNO!=10
4* GROUP BY DEPTNO;
SQL> /
GROUP BY DEPTNO;
*
ERROR at line 4:
ORA-00911: invalid character
SQL> SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE DEPTNO!=10
4 GROUP BY DEPTNO;
COUNT(*) DEPTNO
---------- ----------
6 30
5 20
SQL> SELECT COMM,COUNT(*)
2 FROM EMP
3 WHERE COMM IS NOT NULL
4 GROUP BY DEPTNO;
SELECT COMM,COUNT(*)
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
SQL> ED
Wrote file afiedt.buf
1 SELECT DEPTNO,COUNT(*)
2 FROM EMP
3 WHERE COMM IS NOT NULL
4* GROUP BY DEPTNO
SQL> /
DEPTNO COUNT(*)
---------- ----------
30 4
SQL> SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE JOB!='MANAGER' AND SAL>1600
4 GROUP BY DEPTNO;
COUNT(*) DEPTNO
---------- ----------
2 20
1 10
SQL> SELECT JOB,AVG(SAL)
2 FROM EMP
3 WHERE MGR IS NOT NULL
4 GROUP BY JOB;
JOB AVG(SAL)
--------- ----------
CLERK 1037.5
SALESMAN 1400
MANAGER 2758.33333
ANALYST 3000
SQL> SELECT COUNT(*),HIREDATE
2 FROM EMP
3 GROUP BY HIREDATE
4 HAVING COUNT(*)>1;
COUNT(*) HIREDATE
---------- ---------
2 03-DEC-81
SQL> SELECT COUNT(*),SAL,DEPTNO
2 FROM EMP
3 GROUP BY SAL,DEPTNO
4 HAVING COUNT(SAL)>1;
COUNT(*) SAL DEPTNO
---------- ---------- ----------
2 1250 30
2 3000 20
SQL> ED
Wrote file afiedt.buf
1 SELECT COUNT(*),SAL,DEPTNO
2 FROM EMP
3 GROUP BY SAL,DEPTNO
4* HAVING COUNT(*)>1
SQL> /
COUNT(*) SAL DEPTNO
---------- ---------- ----------
2 1250 30
2 3000 20
SQL> SELECT MAX(SAL),JOB
2 FROM EMP
3 WHERE ENAME NOT LIKE 'K%'
4 GROUP BY JOB;
MAX(SAL) JOB
---------- ---------
1300 CLERK
1600 SALESMAN
2975 MANAGER
3000 ANALYST
SQL> ED
Wrote file afiedt.buf
1 SELECT MAX(SAL),JOB,ENAME
2 FROM EMP
3 WHERE ENAME NOT LIKE 'K%'
4* GROUP BY JOB
SQL> /
SELECT MAX(SAL),JOB,ENAME
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
SQL> SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE MGR=7839
4 GROUP BY DEPTNO;
COUNT(*) DEPTNO
---------- ----------
1 30
1 20
1 10
SQL> SELECT COUNT(*),DEPTNO
2 FROM EMP
3 WHERE ENAME LIKE 'A%' OR ENAME LIKE 'E%' OR ENAME LIKE 'I%' OR ENAME LIKE 'O%' OR ENAME LIKE 'U%'
4 GROUP BY DEPTNO;
COUNT(*) DEPTNO
---------- ----------
1 30
1 20
SQL> SPOOL OFF