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
|
SQL> set autotrace on exp
SQL> WITH p AS
2 (SELECT 1 code, 'Ok' status
3 FROM DUAL
4 UNION ALL
5 SELECT 2 code, 'Ok' status
6 FROM DUAL
7 UNION ALL
8 SELECT 3 code, 'No' status
9 FROM DUAL)
10 SELECT SUM(OK_count) OK,
11 SUM(NO_count) NO
12 FROM
13 (SELECT DECODE(STATUS,'Ok',COUNT(*),0) OK_COUNT,
14 DECODE(STATUS,'No',COUNT(*),0) NO_COUNT
15 FROM p
16 GROUP BY STATUS
17 );
OK NO
---------- ----------
2 1
Plan d'exécution
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=7 Card=1 Bytes=26)
1 0 SORT (AGGREGATE)
2 1 VIEW (Cost=7 Card=3 Bytes=78)
3 2 HASH (GROUP BY) (Cost=7 Card=3 Bytes=12)
4 3 VIEW (Cost=6 Card=3 Bytes=12)
5 4 UNION-ALL
6 5 FAST DUAL (Cost=2 Card=1)
7 5 FAST DUAL (Cost=2 Card=1)
8 5 FAST DUAL (Cost=2 Card=1)
SQL> /* Formatted on 2008/12/03 11:02 (Formatter Plus v4.8.8) */
SQL> WITH p AS
2 (SELECT 1 code, 'Ok' status
3 FROM DUAL
4 UNION ALL
5 SELECT 2 code, 'Ok' status
6 FROM DUAL
7 UNION ALL
8 SELECT 3 code, 'No' status
9 FROM DUAL)
10 SELECT COUNT (CASE
11 WHEN p.status = 'Ok'
12 THEN 1
13 END) cpt_ok, COUNT (CASE
14 WHEN p.status = 'No'
15 THEN 1
16 END) cpt_ko
17 FROM p;
CPT_OK CPT_KO
---------- ----------
2 1
Plan d'exécution
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=6 Card=1 Bytes=4)
1 0 SORT (AGGREGATE)
2 1 VIEW (Cost=6 Card=3 Bytes=12)
3 2 UNION-ALL
4 3 FAST DUAL (Cost=2 Card=1)
5 3 FAST DUAL (Cost=2 Card=1)
6 3 FAST DUAL (Cost=2 Card=1)
SQL> |
Partager