| >>?section crtab |
| >>CREATE TABLE t063t1 |
| +>(a smallint, b int, c int, d date, e char(8), g char(2)); |
| |
| --- SQL operation complete. |
| >> |
| >>insert into t063t1 values |
| +>( 1,10,110, DATE '1980-11-03','A STRING','G1'), |
| +>( 2,18,112, DATE '1980-12-03','B STRING','G2'), |
| +>( 3,27,116, DATE '1981-01-03','C STRING','G3'), |
| +>( 4,35,122, DATE '1981-02-03','D STRING','G4'), |
| +>( 5,45,130, DATE '1981-03-03','E STRING','G5'), |
| +>( 6,30,140, DATE '1981-04-03','F STRING','G1'), |
| +>( 7,35,152, DATE '1981-05-03','G STRING','G2'), |
| +>( 8,40,166, DATE '1981-06-03','H STRING','G3'), |
| +>( 9,45,182, DATE '1981-07-03','I STRING','G4'), |
| +>(10,22,110, DATE '1981-08-03','J STRING','G5'), |
| +>(11,26,112, DATE '1981-09-03','K STRING','G1'), |
| +>(12,30,116, DATE '1981-10-03','L STRING','G2'), |
| +>(13,35,122, DATE '1981-11-03','M STRING','G3'), |
| +>(14,38,130, DATE '1981-12-03','N STRING','G4'), |
| +>(15,45,140, DATE '1982-01-03','O STRING','G5'), |
| +>(16,23,152, DATE '1982-02-03','P STRING','G1'), |
| +>(17,25,166, DATE '1982-03-03','Q STRING','G2'), |
| +>(18,27,182, DATE '1982-04-03','R STRING','G3'), |
| +>(19,29,200, DATE '1982-05-03','S STRING','G4'), |
| +>(20,22,112, DATE '1982-06-03','T STRING','G5'), |
| +>(21,24,116, DATE '1982-07-03','U STRING','G1'), |
| +>(22,26,122, DATE '1982-08-03','V STRING','G2'), |
| +>(23,28,130, DATE '1982-09-03','W STRING','G3'), |
| +>(24,30,140, DATE '1982-10-03','X STRING','G4'), |
| +>(25,32,152, DATE '1982-11-03','Y STRING','G5'); |
| |
| --- 25 row(s) inserted. |
| >> |
| >> |
| >>?section seltab |
| >>SELECT RUNNINGCOUNT(*) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| -------------------- |
| |
| 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 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGCOUNT(*), (SELECT COUNT(*) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGCOUNT(D) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| -------------------- |
| |
| 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 |
| |
| --- 25 row(s) selected. |
| >> |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGCOUNT(D), (SELECT COUNT(D) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGMAX(D) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| ---------- |
| |
| 1980-11-03 |
| 1980-12-03 |
| 1981-01-03 |
| 1981-02-03 |
| 1981-03-03 |
| 1981-04-03 |
| 1981-05-03 |
| 1981-06-03 |
| 1981-07-03 |
| 1981-08-03 |
| 1981-09-03 |
| 1981-10-03 |
| 1981-11-03 |
| 1981-12-03 |
| 1982-01-03 |
| 1982-02-03 |
| 1982-03-03 |
| 1982-04-03 |
| 1982-05-03 |
| 1982-06-03 |
| 1982-07-03 |
| 1982-08-03 |
| 1982-09-03 |
| 1982-10-03 |
| 1982-11-03 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGMAX(D), (SELECT MAX(D) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGMIN(D) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| ---------- |
| |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| 1980-11-03 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGMIN(D), (SELECT MIN(D) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGSUM(C) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| -------------------- |
| |
| 110 |
| 222 |
| 338 |
| 460 |
| 590 |
| 730 |
| 882 |
| 1048 |
| 1230 |
| 1340 |
| 1452 |
| 1568 |
| 1690 |
| 1820 |
| 1960 |
| 2112 |
| 2278 |
| 2460 |
| 2660 |
| 2772 |
| 2888 |
| 3010 |
| 3140 |
| 3280 |
| 3432 |
| |
| --- 25 row(s) selected. |
| >> |
| >>--- Is semantically equivalent to: |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGSUM(C), (SELECT SUM(C) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGAVG(C) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| -------------------- |
| |
| 110 |
| 111 |
| 112 |
| 115 |
| 118 |
| 121 |
| 126 |
| 131 |
| 136 |
| 134 |
| 132 |
| 130 |
| 130 |
| 130 |
| 130 |
| 132 |
| 134 |
| 136 |
| 140 |
| 138 |
| 137 |
| 136 |
| 136 |
| 136 |
| 137 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGAVG(C), (SELECT AVG(C) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGVARIANCE(C) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| ------------------------- |
| |
| 0.00000000000000000E+000 |
| 2.00000000000000000E+000 |
| 9.33333333333212032E+000 |
| 2.80000000000000032E+001 |
| 6.60000000000000000E+001 |
| 1.33466666666665712E+002 |
| 2.42666666666666688E+002 |
| 4.08000000000000000E+002 |
| 6.46000000000000000E+002 |
| 6.45333333333333376E+002 |
| 6.24799999999999872E+002 |
| 5.89333333333335168E+002 |
| 5.46000000000000000E+002 |
| 5.04000000000000000E+002 |
| 4.74666666666667392E+002 |
| 4.71466666666666624E+002 |
| 5.10000000000000064E+002 |
| 6.08000000000000000E+002 |
| 7.85333333333333376E+002 |
| 7.83199999999999360E+002 |
| 7.68361904761905280E+002 |
| 7.42727272727274496E+002 |
| 7.10988142292491520E+002 |
| 6.80579710144929280E+002 |
| 6.61626666666665728E+002 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGVARIANCE(C), (SELECT VARIANCE(C) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGSTDDEV(C) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| ------------------------- |
| |
| 0.00000000000000000E+000 |
| 1.41421356237309520E+000 |
| 3.05505046330369472E+000 |
| 5.29150262212918144E+000 |
| 8.12403840463596032E+000 |
| 1.15527774438299328E+001 |
| 1.55777619273972320E+001 |
| 2.01990098767241568E+001 |
| 2.54165300542776672E+001 |
| 2.54034118443435360E+001 |
| 2.49959996799487872E+001 |
| 2.42761886080442048E+001 |
| 2.33666428910958464E+001 |
| 2.24499443206436480E+001 |
| 2.17868461844909376E+001 |
| 2.17132831848770976E+001 |
| 2.25831795812724288E+001 |
| 2.46576560118759072E+001 |
| 2.80237994093116064E+001 |
| 2.79857106395388800E+001 |
| 2.77193417086680736E+001 |
| 2.72530231850940640E+001 |
| 2.66643609016321920E+001 |
| 2.60879226874224192E+001 |
| 2.57221046313606656E+001 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGSTDDEV(C), (SELECT STDDEV(C) FROM t063t1 WHERE a <= T1.a) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY A) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT RUNNINGRANK(C) FROM t063t1 SEQUENCE BY C; |
| |
| (EXPR) |
| -------------------- |
| |
| 1 |
| 1 |
| 3 |
| 3 |
| 3 |
| 6 |
| 6 |
| 6 |
| 9 |
| 9 |
| 9 |
| 12 |
| 12 |
| 12 |
| 15 |
| 15 |
| 15 |
| 18 |
| 18 |
| 18 |
| 21 |
| 21 |
| 23 |
| 23 |
| 25 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT RUNNINGRANK(C), (SELECT case when sum(cnt) is null |
| +> then 0 |
| +> else sum(cnt) end + 1 |
| +> FROM (select c, cast(count(*) as integer) cnt |
| +> from t063t1 WHERE c < T1.c group by c) G) |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY C) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT C, ROWS SINCE CHANGED (C) FROM t063t1 SEQUENCE BY C; |
| |
| C (EXPR) |
| ----------- -------------------- |
| |
| 110 1 |
| 110 2 |
| 112 1 |
| 112 2 |
| 112 3 |
| 116 1 |
| 116 2 |
| 116 3 |
| 122 1 |
| 122 2 |
| 122 3 |
| 130 1 |
| 130 2 |
| 130 3 |
| 140 1 |
| 140 2 |
| 140 3 |
| 152 1 |
| 152 2 |
| 152 3 |
| 166 1 |
| 166 2 |
| 182 1 |
| 182 2 |
| 200 1 |
| |
| --- 25 row(s) selected. |
| >>SELECT C, D, ROWS SINCE CHANGED (C,D) FROM t063t1 SEQUENCE BY C,D; |
| |
| C D (EXPR) |
| ----------- ---------- -------------------- |
| |
| 110 1980-11-03 1 |
| 110 1981-08-03 1 |
| 112 1980-12-03 1 |
| 112 1981-09-03 1 |
| 112 1982-06-03 1 |
| 116 1981-01-03 1 |
| 116 1981-10-03 1 |
| 116 1982-07-03 1 |
| 122 1981-02-03 1 |
| 122 1981-11-03 1 |
| 122 1982-08-03 1 |
| 130 1981-03-03 1 |
| 130 1981-12-03 1 |
| 130 1982-09-03 1 |
| 140 1981-04-03 1 |
| 140 1982-01-03 1 |
| 140 1982-10-03 1 |
| 152 1981-05-03 1 |
| 152 1982-02-03 1 |
| 152 1982-11-03 1 |
| 166 1981-06-03 1 |
| 166 1982-03-03 1 |
| 182 1981-07-03 1 |
| 182 1982-04-03 1 |
| 200 1982-05-03 1 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT status, count(*) |
| +>FROM |
| +>(SELECT CASE WHEN v = ev THEN 'PASS' ELSE 'FAIL' END |
| +>FROM |
| +>(SELECT ROWS SINCE CHANGED(C), |
| +> ROWS SINCE INCLUSIVE ((C <> offset(C,1)) OR (offset(C,1) is NULL)) + 1 |
| +>FROM t063t1 T1 |
| +>SEQUENCE BY C) T2(v,ev)) T3(status) |
| +>GROUP BY status; |
| |
| STATUS (EXPR) |
| ------ -------------------- |
| |
| PASS 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>-- Correlated Subquery |
| >> |
| >>SELECT a, RUNNINGMAX(b), (SELECT MAX(B) from t063t1 where (a <= S.a)) from t063t1 S SEQUENCE BY A; |
| |
| A (EXPR) (EXPR) |
| ------ ----------- ----------- |
| |
| 1 10 10 |
| 2 18 18 |
| 4 35 35 |
| 9 45 45 |
| 10 45 45 |
| 12 45 45 |
| 13 45 45 |
| 14 45 45 |
| 17 45 45 |
| 19 45 45 |
| 23 45 45 |
| 3 27 27 |
| 5 45 45 |
| 6 45 45 |
| 7 45 45 |
| 8 45 45 |
| 11 45 45 |
| 15 45 45 |
| 16 45 45 |
| 18 45 45 |
| 20 45 45 |
| 21 45 45 |
| 22 45 45 |
| 24 45 45 |
| 25 45 45 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT a, (SELECT SUM(B) from t063t1 where (a <= S.a)), y |
| +>FROM t063t1 S, (SELECT a, RUNNINGSUM(B) from t063t1 sequence by a) AS T(x, y) |
| +>where a = x order by a; |
| |
| A (EXPR) Y |
| ------ -------------------- -------------------- |
| |
| 1 10 10 |
| 2 28 28 |
| 3 55 55 |
| 4 90 90 |
| 5 135 135 |
| 6 165 165 |
| 7 200 200 |
| 8 240 240 |
| 9 285 285 |
| 10 307 307 |
| 11 333 333 |
| 12 363 363 |
| 13 398 398 |
| 14 436 436 |
| 15 481 481 |
| 16 504 504 |
| 17 529 529 |
| 18 556 556 |
| 19 585 585 |
| 20 607 607 |
| 21 631 631 |
| 22 657 657 |
| 23 685 685 |
| 24 715 715 |
| 25 747 747 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- MOVINGMIN/MOVINGMAX |
| >> |
| >>SELECT a, MOVINGMIN(b, 5), (SELECT MIN(B) from t063t1 where (a between S.a-4 and S.a)) from t063t1 S SEQUENCE BY A; |
| |
| A (EXPR) (EXPR) |
| ------ ----------- ----------- |
| |
| 1 10 10 |
| 2 10 10 |
| 3 10 10 |
| 4 10 10 |
| 5 10 10 |
| 6 18 18 |
| 7 27 27 |
| 8 30 30 |
| 9 30 30 |
| 10 22 22 |
| 11 22 22 |
| 12 22 22 |
| 13 22 22 |
| 14 22 22 |
| 15 26 26 |
| 16 23 23 |
| 17 23 23 |
| 18 23 23 |
| 19 23 23 |
| 20 22 22 |
| 21 22 22 |
| 22 22 22 |
| 23 22 22 |
| 24 22 22 |
| 25 24 24 |
| |
| --- 25 row(s) selected. |
| >>SELECT a, MOVINGMAX(c, 5), (SELECT MAX(C) from t063t1 where (a between S.a-4 and S.a)) from t063t1 S SEQUENCE BY A; |
| |
| A (EXPR) (EXPR) |
| ------ ----------- ----------- |
| |
| 1 110 110 |
| 2 112 112 |
| 3 116 116 |
| 4 122 122 |
| 5 130 130 |
| 6 140 140 |
| 7 152 152 |
| 8 166 166 |
| 9 182 182 |
| 10 182 182 |
| 11 182 182 |
| 12 182 182 |
| 13 182 182 |
| 14 130 130 |
| 15 140 140 |
| 16 152 152 |
| 17 166 166 |
| 18 182 182 |
| 19 200 200 |
| 20 200 200 |
| 21 200 200 |
| 22 200 200 |
| 23 200 200 |
| 24 140 140 |
| 25 152 152 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- Test semantic equivalences and DIFFs of Date-Time values |
| >> |
| >>SELECT DIFF1(B), B-OFFSET(B, 1) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) (EXPR) |
| -------------------- -------------------- |
| |
| ? ? |
| 8 8 |
| 9 9 |
| 8 8 |
| 10 10 |
| -15 -15 |
| 5 5 |
| 5 5 |
| 5 5 |
| -23 -23 |
| 4 4 |
| 4 4 |
| 5 5 |
| 3 3 |
| 7 7 |
| -22 -22 |
| 2 2 |
| 2 2 |
| 2 2 |
| -7 -7 |
| 2 2 |
| 2 2 |
| 2 2 |
| 2 2 |
| 2 2 |
| |
| --- 25 row(s) selected. |
| >>SELECT DIFF2(B), DIFF1(B)-OFFSET(DIFF1(B), 1) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) (EXPR) |
| -------------------- -------------------- |
| |
| ? ? |
| ? ? |
| 1 1 |
| -1 -1 |
| 2 2 |
| -25 -25 |
| 20 20 |
| 0 0 |
| 0 0 |
| -28 -28 |
| 27 27 |
| 0 0 |
| 1 1 |
| -2 -2 |
| 4 4 |
| -29 -29 |
| 24 24 |
| 0 0 |
| 0 0 |
| -9 -9 |
| 9 9 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| |
| --- 25 row(s) selected. |
| >>SELECT DIFF1(B,D) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) |
| --------------------- |
| |
| ? |
| .2666666 |
| .2903225 |
| .2580645 |
| .3571428 |
| -.4838709 |
| .1666666 |
| .1612903 |
| .1666666 |
| -.7419354 |
| .1290322 |
| .1333333 |
| .1612903 |
| .1000000 |
| .2258064 |
| -.7096774 |
| .0714285 |
| .0645161 |
| .0666666 |
| -.2258064 |
| .0666666 |
| .0645161 |
| .0645161 |
| .0666666 |
| .0645161 |
| |
| --- 25 row(s) selected. |
| >>SELECT DIFF1(B,D), DIFF1(B)/CAST(DIFF1(D) AS LARGEINT) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) (EXPR) |
| --------------------- --------------------- |
| |
| ? ? |
| .2666666 .2666666 |
| .2903225 .2903225 |
| .2580645 .2580645 |
| .3571428 .3571428 |
| -.4838709 -.4838709 |
| .1666666 .1666666 |
| .1612903 .1612903 |
| .1666666 .1666666 |
| -.7419354 -.7419354 |
| .1290322 .1290322 |
| .1333333 .1333333 |
| .1612903 .1612903 |
| .1000000 .1000000 |
| .2258064 .2258064 |
| -.7096774 -.7096774 |
| .0714285 .0714285 |
| .0645161 .0645161 |
| .0666666 .0666666 |
| -.2258064 -.2258064 |
| .0666666 .0666666 |
| .0645161 .0645161 |
| .0645161 .0645161 |
| .0666666 .0666666 |
| .0645161 .0645161 |
| |
| --- 25 row(s) selected. |
| >>SELECT DIFF2(B,D), DIFF2(B)/CAST(DIFF1(D) AS LARGEINT) FROM t063t1 SEQUENCE BY A; |
| |
| (EXPR) (EXPR) |
| --------------------- --------------------- |
| |
| ? ? |
| ? ? |
| .032258 .032258 |
| -.032258 -.032258 |
| .071428 .071428 |
| -.806451 -.806451 |
| .666666 .666666 |
| .000000 .000000 |
| .000000 .000000 |
| -.903225 -.903225 |
| .870967 .870967 |
| .000000 .000000 |
| .032258 .032258 |
| -.066666 -.066666 |
| .129032 .129032 |
| -.935483 -.935483 |
| .857142 .857142 |
| .000000 .000000 |
| .000000 .000000 |
| -.290322 -.290322 |
| .300000 .300000 |
| .000000 .000000 |
| .000000 .000000 |
| .000000 .000000 |
| .000000 .000000 |
| |
| --- 25 row(s) selected. |
| >> |
| >>?section negtests |
| >>-- Negative Tests |
| >>-- should return error 4108 |
| >>SELECT a, c, runningavg(c), rows since (this (c) > runningavg(this(c))) from t063t1 sequence by a ; |
| |
| *** ERROR[4108] Inside a ROWS SINCE, another sequence function contained an invalid reference to the THIS function. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- should return error 4109 |
| >>SELECT a, b, RUNNINGAVG(c) from t063t1 WHERE a > 5 and RUNNINGAVG(c) > 130 sequence by a; |
| |
| *** ERROR[4109] Sequence functions are placed incorrectly: RUNNINGAVG(TRAFODION.SCH.T063T1.C). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- should return 4110 |
| >>SELECT a, b, RUNNINGAVG(c) from t063t1 WHERE a > 5; |
| |
| *** ERROR[4110] The query contains sequence functions but no SEQUENCE BY clause: RUNNINGAVG(TRAFODION.SCH.T063T1.C). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- should return 4111 |
| >>select a, b, c from t063t1 sequence by a; |
| |
| *** ERROR[4111] The query contains a SEQUENCE BY clause but no sequence functions. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- |
| >>-- Invalid arguments: |
| >>-- |
| >>-- first argument invalid |
| >>select runningsum(d) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select runningavg(d) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select movingsum(d, 5) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select movingavg(d, 5) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select runningsum(e) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select runningavg(e) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select movingsum(e, 5) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select movingavg(e, 5) from t063t1 sequence by a; |
| |
| *** ERROR[4038] The operand of an AVG or SUM function must be numeric or interval. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- second argument invalid |
| >>select movingsum(5, d) from t063t1 sequence by a; |
| |
| *** ERROR[4052] The second operand of function MOVINGSUM must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select movingavg(5, d) from t063t1 sequence by a; |
| |
| *** ERROR[4052] The second operand of function MOVINGAVG must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>select movingsum(5, e) from t063t1 sequence by a; |
| |
| *** ERROR[4052] The second operand of function MOVINGSUM must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select movingavg(5, e) from t063t1 sequence by a; |
| |
| *** ERROR[4052] The second operand of function MOVINGAVG must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- first argument invalid |
| >>select diff1(e) from t063t1 sequence by a; |
| |
| *** ERROR[4059] The first operand of function DIFF1 must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select diff2(e) from t063t1 sequence by a; |
| |
| *** ERROR[4059] The first operand of function DIFF2 must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select diff1(e,c) from t063t1 sequence by a; |
| |
| *** ERROR[4059] The first operand of function DIFF1 must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select diff2(e,c) from t063t1 sequence by a; |
| |
| *** ERROR[4059] The first operand of function DIFF2 must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--second argument invalid |
| >>select diff1(c, e) from t063t1 sequence by a; |
| |
| *** ERROR[4052] The second operand of function DIFF1 must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select diff2(c, e) from t063t1 sequence by a; |
| |
| *** ERROR[4052] The second operand of function DIFF2 must be numeric. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>?section derived |
| >>-- Derived tables |
| >> |
| >>-- should get right answer |
| >>SELECT aa, bb, cc |
| +>FROM (SELECT a, b, RUNNINGAVG(c) from t063t1 WHERE a > 5 sequence by a) AS T(aa,bb,cc) |
| +>WHERE cc > 130; |
| |
| AA BB CC |
| ------ ----------- -------------------- |
| |
| 6 30 140 |
| 7 35 146 |
| 8 40 152 |
| 9 45 160 |
| 10 22 150 |
| 11 26 143 |
| 12 30 139 |
| 13 35 137 |
| 14 38 136 |
| 15 45 137 |
| 16 23 138 |
| 17 25 140 |
| 18 27 143 |
| 19 29 147 |
| 20 22 145 |
| 21 24 143 |
| 22 26 142 |
| 23 28 141 |
| 24 30 141 |
| 25 32 142 |
| |
| --- 20 row(s) selected. |
| >> |
| >>SELECT g, AVG(c) FROM t063t1 GROUP BY g; |
| |
| G (EXPR) |
| -- -------------------- |
| |
| G3 143 |
| G1 126 |
| G2 133 |
| G5 128 |
| G4 154 |
| |
| --- 5 row(s) selected. |
| >> |
| >>SELECT gg, MOVINGSUM (avgC,2) as MSUM |
| +>FROM (SELECT g, AVG(c) FROM t063t1 GROUP BY g) AS T2 (gg, avgC) |
| +>SEQUENCE BY gg; |
| |
| GG MSUM |
| -- -------------------- |
| |
| G1 126 |
| G2 259 |
| G3 276 |
| G4 298 |
| G5 283 |
| |
| --- 5 row(s) selected. |
| >> |
| >>?section scalar_agg |
| >>-- |
| >>-- The following all return NO rows from the sequence node |
| >>-- |
| >>SELECT MAX(MMM) |
| +>FROM |
| +>(SELECT MOVINGSUM (avgC,2) as MSUM |
| +>FROM (SELECT g, AVG(c) FROM t063t1 GROUP BY g) AS T2 (gg, avgC) |
| +>SEQUENCE BY gg) as T3 (MMM); |
| |
| (EXPR) |
| -------------------- |
| |
| 298 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT COUNT(MMM) |
| +>FROM |
| +>(SELECT MOVINGSUM (avgC,2) as MSUM |
| +>FROM (SELECT g, AVG(c) FROM t063t1 GROUP BY g) AS T2 (gg, avgC) |
| +>SEQUENCE BY gg) as T3 (MMM); |
| |
| (EXPR) |
| -------------------- |
| |
| 5 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT COUNT(*) |
| +>FROM |
| +>(SELECT MOVINGSUM (avgC,2) as MSUM |
| +>FROM (SELECT g, AVG(c) FROM t063t1 GROUP BY g) AS T2 (gg, avgC) |
| +>SEQUENCE BY gg) as T3 (MMM); |
| |
| (EXPR) |
| -------------------- |
| |
| 5 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT COUNT(*) |
| +>FROM (SELECT g, AVG(c) FROM t063t1 GROUP BY g) AS T; |
| |
| (EXPR) |
| -------------------- |
| |
| 5 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT COUNT(MMM) |
| +>FROM |
| +>(SELECT MOVINGSUM (c,2) as MSUM FROM t063t1 sequence by a) as T (MMM); |
| |
| (EXPR) |
| -------------------- |
| |
| 25 |
| |
| --- 1 row(s) selected. |
| >> |
| >>SELECT AVG(MOVINGSUM (c,2)) ASUM FROM t063t1 sequence by a; |
| |
| ASUM |
| -------------------- |
| |
| 268 |
| |
| --- 1 row(s) selected. |
| >> |
| >>-- |
| >>-- Derived Table |
| >>-- |
| >>SELECT aa, cast(bb as numeric(7,2)), cast (cc as numeric (7,2)) FROM |
| +>(SELECT a, RUNNINGSUM(B), MOVINGAVG(C,5) FROM t063t1 sequence by a) AS T (aa,bb,cc); |
| |
| AA (EXPR) (EXPR) |
| ------ ------------ ------------ |
| |
| 1 10.00 110.00 |
| 2 28.00 111.00 |
| 3 55.00 112.66 |
| 4 90.00 115.00 |
| 5 135.00 118.00 |
| 6 165.00 124.00 |
| 7 200.00 132.00 |
| 8 240.00 142.00 |
| 9 285.00 154.00 |
| 10 307.00 150.00 |
| 11 333.00 144.40 |
| 12 363.00 137.20 |
| 13 398.00 128.40 |
| 14 436.00 118.00 |
| 15 481.00 124.00 |
| 16 504.00 132.00 |
| 17 529.00 142.00 |
| 18 556.00 154.00 |
| 19 585.00 168.00 |
| 20 607.00 162.40 |
| 21 631.00 155.20 |
| 22 657.00 146.40 |
| 23 685.00 136.00 |
| 24 715.00 124.00 |
| 25 747.00 132.00 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- CREATE VIEW |
| >>#ifMX |
| >>CREATE VIEW t063v1 (x, y, z) as |
| +>SELECT a, CAST (RUNNINGSUM(B) AS NUMERIC(7,2)), CAST (MOVINGAVG(C,5) AS NUMERIC(7,2)) FROM t063t1 sequence by a; |
| |
| --- SQL operation complete. |
| >> |
| >>SELECT * from t063v1; |
| |
| X Y Z |
| ------ ------------ ------------ |
| |
| 1 10.00 110.00 |
| 2 28.00 111.00 |
| 3 55.00 112.66 |
| 4 90.00 115.00 |
| 5 135.00 118.00 |
| 6 165.00 124.00 |
| 7 200.00 132.00 |
| 8 240.00 142.00 |
| 9 285.00 154.00 |
| 10 307.00 150.00 |
| 11 333.00 144.40 |
| 12 363.00 137.20 |
| 13 398.00 128.40 |
| 14 436.00 118.00 |
| 15 481.00 124.00 |
| 16 504.00 132.00 |
| 17 529.00 142.00 |
| 18 556.00 154.00 |
| 19 585.00 168.00 |
| 20 607.00 162.40 |
| 21 631.00 155.20 |
| 22 657.00 146.40 |
| 23 685.00 136.00 |
| 24 715.00 124.00 |
| 25 747.00 132.00 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- |
| >>-- Correctly avoids pushing predicate down |
| >>-- |
| >>SELECT * from t063v1 where x = 10; |
| |
| X Y Z |
| ------ ------------ ------------ |
| |
| 10 307.00 150.00 |
| |
| --- 1 row(s) selected. |
| >> |
| >>-- |
| >>-- |
| >>SELECT aa, x, cast(bb as numeric(7,2)), cast (cc as numeric (7,2)) FROM |
| +>(SELECT a, RUNNINGSUM(B), MOVINGAVG(C,5) FROM t063t1 sequence by a) AS T (aa,bb,cc), t063v1 where aa = x; |
| |
| AA X (EXPR) (EXPR) |
| ------ ------ ------------ ------------ |
| |
| 1 1 10.00 110.00 |
| 2 2 28.00 111.00 |
| 3 3 55.00 112.66 |
| 4 4 90.00 115.00 |
| 5 5 135.00 118.00 |
| 6 6 165.00 124.00 |
| 7 7 200.00 132.00 |
| 8 8 240.00 142.00 |
| 9 9 285.00 154.00 |
| 10 10 307.00 150.00 |
| 11 11 333.00 144.40 |
| 12 12 363.00 137.20 |
| 13 13 398.00 128.40 |
| 14 14 436.00 118.00 |
| 15 15 481.00 124.00 |
| 16 16 504.00 132.00 |
| 17 17 529.00 142.00 |
| 18 18 556.00 154.00 |
| 19 19 585.00 168.00 |
| 20 20 607.00 162.40 |
| 21 21 631.00 155.20 |
| 22 22 657.00 146.40 |
| 23 23 685.00 136.00 |
| 24 24 715.00 124.00 |
| 25 25 747.00 132.00 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- |
| >>-- |
| >>SELECT aa, x, cast(bb as numeric(7,2)), y, cast (cc as numeric (7,2)) FROM |
| +>(SELECT a, RUNNINGSUM(B), MOVINGAVG(C,5) FROM t063t1 sequence by a) AS T (aa,bb,cc), t063v1 where aa = x; |
| |
| AA X (EXPR) Y (EXPR) |
| ------ ------ ------------ ------------ ------------ |
| |
| 1 1 10.00 10.00 110.00 |
| 2 2 28.00 28.00 111.00 |
| 3 3 55.00 55.00 112.66 |
| 4 4 90.00 90.00 115.00 |
| 5 5 135.00 135.00 118.00 |
| 6 6 165.00 165.00 124.00 |
| 7 7 200.00 200.00 132.00 |
| 8 8 240.00 240.00 142.00 |
| 9 9 285.00 285.00 154.00 |
| 10 10 307.00 307.00 150.00 |
| 11 11 333.00 333.00 144.40 |
| 12 12 363.00 363.00 137.20 |
| 13 13 398.00 398.00 128.40 |
| 14 14 436.00 436.00 118.00 |
| 15 15 481.00 481.00 124.00 |
| 16 16 504.00 504.00 132.00 |
| 17 17 529.00 529.00 142.00 |
| 18 18 556.00 556.00 154.00 |
| 19 19 585.00 585.00 168.00 |
| 20 20 607.00 607.00 162.40 |
| 21 21 631.00 631.00 155.20 |
| 22 22 657.00 657.00 146.40 |
| 23 23 685.00 685.00 136.00 |
| 24 24 715.00 715.00 124.00 |
| 25 25 747.00 747.00 132.00 |
| |
| --- 25 row(s) selected. |
| >> |
| >> |
| >>SELECT aa, x, cast(bb as numeric(7,2)), cast (cc as numeric (7,2)), z FROM |
| +>(SELECT a, RUNNINGSUM(B), MOVINGAVG(C,5) FROM t063t1 sequence by a) AS T (aa,bb,cc), t063v1 where aa = x; |
| |
| AA X (EXPR) (EXPR) Z |
| ------ ------ ------------ ------------ ------------ |
| |
| 1 1 10.00 110.00 110.00 |
| 2 2 28.00 111.00 111.00 |
| 3 3 55.00 112.66 112.66 |
| 4 4 90.00 115.00 115.00 |
| 5 5 135.00 118.00 118.00 |
| 6 6 165.00 124.00 124.00 |
| 7 7 200.00 132.00 132.00 |
| 8 8 240.00 142.00 142.00 |
| 9 9 285.00 154.00 154.00 |
| 10 10 307.00 150.00 150.00 |
| 11 11 333.00 144.40 144.40 |
| 12 12 363.00 137.20 137.20 |
| 13 13 398.00 128.40 128.40 |
| 14 14 436.00 118.00 118.00 |
| 15 15 481.00 124.00 124.00 |
| 16 16 504.00 132.00 132.00 |
| 17 17 529.00 142.00 142.00 |
| 18 18 556.00 154.00 154.00 |
| 19 19 585.00 168.00 168.00 |
| 20 20 607.00 162.40 162.40 |
| 21 21 631.00 155.20 155.20 |
| 22 22 657.00 146.40 146.40 |
| 23 23 685.00 136.00 136.00 |
| 24 24 715.00 124.00 124.00 |
| 25 25 747.00 132.00 132.00 |
| |
| --- 25 row(s) selected. |
| >>#ifMX |
| >> |
| >>-- |
| >>?section rows_since |
| >>-- ROWS SINCE |
| >> |
| >>SELECT a, c, runningavg(c), rows since (this (c) > runningavg(c)) FROM t063t1 sequence by a; |
| |
| A C (EXPR) (EXPR) |
| ------ ----------- -------------------- ----------- |
| |
| 1 110 110 ? |
| 2 112 111 1 |
| 3 116 112 1 |
| 4 122 115 1 |
| 5 130 118 1 |
| 6 140 121 1 |
| 7 152 126 1 |
| 8 166 131 1 |
| 9 182 136 1 |
| 10 110 134 ? |
| 11 112 132 9 |
| 12 116 130 8 |
| 13 122 130 7 |
| 14 130 130 7 |
| 15 140 130 1 |
| 16 152 132 1 |
| 17 166 134 1 |
| 18 182 136 1 |
| 19 200 140 1 |
| 20 112 138 18 |
| 21 116 137 17 |
| 22 122 136 16 |
| 23 130 136 16 |
| 24 140 136 1 |
| 25 152 137 1 |
| |
| --- 25 row(s) selected. |
| >>SELECT a, c, runningavg(c), rows since inclusive(this (c) > runningavg(c)) FROM t063t1 sequence by a; |
| |
| A C (EXPR) (EXPR) |
| ------ ----------- -------------------- ----------- |
| |
| 1 110 110 ? |
| 2 112 111 0 |
| 3 116 112 0 |
| 4 122 115 0 |
| 5 130 118 0 |
| 6 140 121 0 |
| 7 152 126 0 |
| 8 166 131 0 |
| 9 182 136 0 |
| 10 110 134 ? |
| 11 112 132 9 |
| 12 116 130 8 |
| 13 122 130 7 |
| 14 130 130 7 |
| 15 140 130 0 |
| 16 152 132 0 |
| 17 166 134 0 |
| 18 182 136 0 |
| 19 200 140 0 |
| 20 112 138 18 |
| 21 116 137 17 |
| 22 122 136 16 |
| 23 130 136 16 |
| 24 140 136 0 |
| 25 152 137 0 |
| |
| --- 25 row(s) selected. |
| >> |
| >>select a, b, ROWS SINCE (a > b), ROWS SINCE INCLUSIVE (a > b) FROM |
| +>(select aa, bb from (values(1)) as T(a) transpose |
| +>(2 , 3), |
| +>(4 , 5), |
| +>(1 , 6), |
| +>(8 , 12), |
| +>(10, 12), |
| +>(12, 15) as (aa,bb)) as T (a, b) sequence by a; |
| |
| A B (EXPR) (EXPR) |
| ------ ------ ----------- ----------- |
| |
| 1 6 ? ? |
| 2 3 ? ? |
| 4 5 ? ? |
| 8 12 ? ? |
| 10 12 ? ? |
| 12 15 ? ? |
| |
| --- 6 row(s) selected. |
| >> |
| >>select a, b, ROWS SINCE (a < b), ROWS SINCE INCLUSIVE (a < b) FROM |
| +>(select aa, bb from (values(1)) as T(a) transpose |
| +>(2 , 3), |
| +>(4 , 5), |
| +>(1 , 6), |
| +>(8 , 12), |
| +>(10, 12), |
| +>(12, 15) as (aa,bb)) as T (a, b) sequence by a; |
| |
| A B (EXPR) (EXPR) |
| ------ ------ ----------- ----------- |
| |
| 1 6 ? 0 |
| 2 3 1 0 |
| 4 5 1 0 |
| 8 12 1 0 |
| 10 12 1 0 |
| 12 15 1 0 |
| |
| --- 6 row(s) selected. |
| >> |
| >>-- LAST NOT NULL |
| >> |
| >>select a, b, RUNNINGCOUNT(b) as RCOUNT, RUNNINGAVG (b) as RAVG, LASTNOTNULL(b) as LASTNN, RANK(a) RANK FROM |
| +>(select aa, bb from (values(1)) as T(a) transpose |
| +>(1, 3), |
| +>(2, 5), |
| +>(3, 6), |
| +>(4, NULL), |
| +>(5, NULL), |
| +>(6, 14), |
| +>(7, NULL), |
| +>(8, NULL), |
| +>(9, 15) |
| +>as (aa,bb)) as T (a, b) sequence by a; |
| |
| A B RCOUNT RAVG LASTNN RANK |
| ------ ------ -------------------- -------------------- ------ -------------------- |
| |
| 1 3 1 3 3 1 |
| 2 5 2 4 5 2 |
| 3 6 3 4 6 3 |
| 4 ? 3 4 6 4 |
| 5 ? 3 4 6 5 |
| 6 14 4 7 14 6 |
| 7 ? 4 7 14 7 |
| 8 ? 4 7 14 8 |
| 9 15 5 8 15 9 |
| |
| --- 9 row(s) selected. |
| >> |
| >>select b, MOVINGCOUNT(*,3) as MCOUNTSTAR, MOVINGCOUNT(b,3) as MCOUNT, MOVINGAVG (b,3) as MAVG FROM |
| +>(select aa, bb from (values(1)) as T(a) transpose |
| +>(1, 3), |
| +>(2, 5), |
| +>(3, 6), |
| +>(4, NULL), |
| +>(5, NULL), |
| +>(6, 14), |
| +>(7, NULL), |
| +>(8, NULL), |
| +>(9, 15) |
| +>as (aa,bb)) as T (a, b) sequence by a; |
| |
| B MCOUNTSTAR MCOUNT MAVG |
| ------ -------------------- -------------------- -------------------- |
| |
| 3 1 1 3 |
| 5 2 2 4 |
| 6 3 3 4 |
| ? 3 2 5 |
| ? 3 1 6 |
| 14 3 1 14 |
| ? 3 1 14 |
| ? 3 1 14 |
| 15 3 1 15 |
| |
| --- 9 row(s) selected. |
| >> |
| >>-- |
| >>-- |
| >>-- Test for correct scoping of GROUP BY and SEQUENCE BY in same query |
| >>-- |
| >> |
| >>-- |
| >>-- |
| >>-- Should return 3 rows |
| >>-- |
| >>select a, avg(b), avg (runningsum(a)) |
| +>from |
| +>(values |
| +>(1234, 23.000, 11), |
| +>(1234, 24.000, 17), |
| +>(1234, 25.000, 14), |
| +>(1234, 26.000, 10), |
| +>(1234, 27.000, 19), |
| +>(1234, 28.000, 14), |
| +>(1234, 29.000, 18), |
| +>(1234, 30.000, 18), |
| +>(1234, 31.000, 12), |
| +>(2345, 23.000, 14), |
| +>(2345, 24.000, 15), |
| +>(2345, 25.000, 15), |
| +>(2345, 26.000, 11), |
| +>(2345, 27.000, 17), |
| +>(2345, 28.000, 11), |
| +>(2345, 29.000, 11), |
| +>(2345, 30.000, 15), |
| +>(2345, 31.000, 12), |
| +>(3456, 23.000, 17), |
| +>(3456, 24.000, 16), |
| +>(3456, 25.000, 11), |
| +>(3456, 26.000, 17), |
| +>(3456, 27.000, 14), |
| +>(3456, 28.000, 10), |
| +>(3456, 29.000, 19), |
| +>(3456, 30.000, 14), |
| +>(3456, 31.000, 18)) |
| +>as T(a, b, c) |
| +>sequence by a, b |
| +>group by a; |
| |
| A (EXPR) (EXPR) |
| ------ --------------------- -------------------- |
| |
| 1234 27.000 6170 |
| 2345 27.000 22831 |
| 3456 27.000 49491 |
| |
| --- 3 row(s) selected. |
| >> |
| >>-- |
| >>-- Error 4109: Sequence function placed incorrectly |
| >>-- Genesis case 10-990823-0045 |
| >>-- |
| >>select a, avg(b), runningsum(a) |
| +>from |
| +>(values |
| +>(1234, 23, 11), |
| +>(1234, 24, 17), |
| +>(1234, 25, 14), |
| +>(1234, 26, 10), |
| +>(1234, 27, 19), |
| +>(1234, 28, 14), |
| +>(1234, 29, 18), |
| +>(1234, 30, 18), |
| +>(1234, 31, 12), |
| +>(2345, 23, 14), |
| +>(2345, 24, 15), |
| +>(2345, 25, 15), |
| +>(2345, 26, 11), |
| +>(2345, 27, 17), |
| +>(2345, 28, 11), |
| +>(2345, 29, 11), |
| +>(2345, 30, 15), |
| +>(2345, 31, 12), |
| +>(3456, 23, 17), |
| +>(3456, 24, 16), |
| +>(3456, 25, 11), |
| +>(3456, 26, 17), |
| +>(3456, 27, 14), |
| +>(3456, 28, 10), |
| +>(3456, 29, 19), |
| +>(3456, 30, 14), |
| +>(3456, 31, 18)) |
| +>as T(a, b, c) |
| +>sequence by a, b |
| +>group by a; |
| |
| *** ERROR[4109] Sequence functions are placed incorrectly: RUNNINGSUM(A). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- |
| >>-- Tests valid ROWS SINCE nesting |
| >>-- Genesis case 10-990301-0576 |
| >>-- |
| >>select a, b, c, movingavg(c, 3, rows since (this (a) <> a)) |
| +>from |
| +>(values |
| +>(1234, 23, 11.000), |
| +>(1234, 24, 17.000), |
| +>(2345, 23, 14.000), |
| +>(2345, 24, 15.000), |
| +>(2345, 25, 15.000), |
| +>(2345, 26, 11.000)) |
| +>as T(a, b, c) |
| +>sequence by a, b; |
| |
| A B C (EXPR) |
| ------ ------ ------------ --------------------- |
| |
| 1234 23 11.000 11.000 |
| 1234 24 17.000 14.000 |
| 2345 23 14.000 14.000 |
| 2345 24 15.000 14.500 |
| 2345 25 15.000 14.666 |
| 2345 26 11.000 13.666 |
| |
| --- 6 row(s) selected. |
| >> |
| >> |
| >>-- |
| >>-- Tests correct trapping for divide by zero |
| >>-- |
| >>-- Genesis case 10-990219-0316 |
| >>-- |
| >> |
| >>select a, diff1(b, c) |
| +>from |
| +>(values |
| +>(1234, 23, 11), |
| +>(1234, 24, 12), |
| +>(1234, 25, 13), |
| +>(2345, 23, 14), |
| +>(2345, 24, 14), |
| +>(2345, 25, 15), |
| +>(2345, 26, 15), |
| +>(2345, 27, 16), |
| +>(2345, 27, 16), |
| +>(3452, 23, 17), |
| +>(3452, 24, 17), |
| +>(3452, 25, 17), |
| +>(3452, 26, 18), |
| +>(3452, 27, 18), |
| +>(3452, 28, 18), |
| +>(3452, 29, 19), |
| +>(3452, 30, 19), |
| +>(3452, 31, 19)) |
| +>as T(a, b, c) |
| +>sequence by a, b; |
| |
| *** ERROR[8419] An arithmetic expression attempted a division by zero. |
| |
| --- 0 row(s) selected. |
| >> |
| >>-- |
| >>-- |
| >>-- Test for non-Pcode Evaluation |
| >>-- |
| >>-- Genesis case 10-990729-3914 |
| >>-- |
| >>create table t063t2 (a int, b int, c smallint, d largeint); |
| |
| --- SQL operation complete. |
| >> |
| >>insert into t063t2 values |
| +> (2, 74, 27648, 498921136), |
| +> (80, 24011, 22223, 859834), |
| +> (89, 28238, 28519, 285854226), |
| +> (51, 15294, 18450, 100322507), |
| +> (33, 9031, 32354, 1130723134), |
| +> (53, 15474, 5573, 476322978), |
| +> (50, 15250, 24665, 196331131), |
| +> (71, null, 27138, 37182688), |
| +> (76, 23010, 6585, 666815330), |
| +> (47, 13457, 32039, 186130057); |
| |
| --- 10 row(s) inserted. |
| >> |
| >>control query default PCODE_OPT_LEVEL 'OFF'; |
| |
| --- SQL operation complete. |
| >> |
| >> select a, b, |
| +> runningcount(*) as rcount_star, |
| +> runningsum(b) as rsum_b, |
| +> rank(a) as rank |
| +> from t063t2 |
| +> sequence by a; |
| |
| A B RCOUNT_STAR RSUM_B RANK |
| ----------- ----------- -------------------- -------------------- -------------------- |
| |
| 2 74 1 74 1 |
| 33 9031 2 9105 2 |
| 47 13457 3 22562 3 |
| 50 15250 4 37812 4 |
| 51 15294 5 53106 5 |
| 53 15474 6 68580 6 |
| 71 ? 7 68580 7 |
| 76 23010 8 91590 8 |
| 80 24011 9 115601 9 |
| 89 28238 10 143839 10 |
| |
| --- 10 row(s) selected. |
| >> |
| >> select b, runningsum(b), runningcount(*), rank(a) |
| +> from t063t2 |
| +> sequence by a; |
| |
| B (EXPR) (EXPR) (EXPR) |
| ----------- -------------------- -------------------- -------------------- |
| |
| 74 74 1 1 |
| 9031 9105 2 2 |
| 13457 22562 3 3 |
| 15250 37812 4 4 |
| 15294 53106 5 5 |
| 15474 68580 6 6 |
| ? 68580 7 7 |
| 23010 91590 8 8 |
| 24011 115601 9 9 |
| 28238 143839 10 10 |
| |
| --- 10 row(s) selected. |
| >> |
| >>control query default PCODE_OPT_LEVEL '2'; |
| |
| --- SQL operation complete. |
| >>-- |
| >>-- Test for nested sequence functions within derived tables |
| >>-- |
| >>-- Genesis Case Number: 10-990301-0569 |
| >> |
| >>create table t063t3 ( |
| +> account_num int, |
| +> wk int, |
| +> wkly_ad_clicks int |
| +> ); |
| |
| --- SQL operation complete. |
| >> |
| >>insert into t063t3 values |
| +> (1234, 23, 11), |
| +> (1234, 24, 17), |
| +> (2345, 23, 14), |
| +> (2345, 24, 15), |
| +> (2345, 25, 15), |
| +> (2345, 26, 11); |
| |
| --- 6 row(s) inserted. |
| >> |
| >>select account_num, wk, diff1 (ad_clicks_mov_avg) |
| +> from ( |
| +> select account_num, wk, |
| +> movingavg (wkly_ad_clicks, 3, |
| +> rows since (account_num <> OFFSET (account_num,1))) |
| +> from t063t3 |
| +> sequence by account_num, wk |
| +> ) as T1 ( account_num, wk, ad_clicks_mov_avg) |
| +> sequence by account_num, wk; |
| |
| ACCOUNT_NUM WK (EXPR) |
| ----------- ----------- -------------------- |
| |
| 1234 23 ? |
| 1234 24 3 |
| 2345 23 0 |
| 2345 24 1 |
| 2345 25 0 |
| 2345 26 -1 |
| |
| --- 6 row(s) selected. |
| >> |
| >>-- Tests for protective sequence function transformations to avoid |
| >>-- short-circuiting. The generator define GEN_DISABLE_SF_PROTECT disables the |
| >>-- protective sequence function transformation. At this point, all of |
| >>-- these tests should fail if the generator define GEN_DISABLE_SF_PROTECT |
| >>-- is set. |
| >>-- |
| >>-- Test the ITM_SCALAR_MIN transformation. |
| >>-- |
| >>-- The second and third arguments of offset are combined using the scalar |
| >>-- min function. If short-circuiting is allowed, the rows since is not |
| >>-- computed on each rows and the offset returns the incorrect value. |
| >>-- |
| >>?section SCBUG_Q1 |
| >>select b,c,offset (c, (rows since inclusive (b = 30)), 99) |
| +>from t063t1 sequence by a order by a; |
| |
| B C (EXPR) |
| ----------- ----------- ----------- |
| |
| 10 110 ? |
| 18 112 ? |
| 27 116 ? |
| 35 122 ? |
| 45 130 ? |
| 30 140 140 |
| 35 152 140 |
| 40 166 140 |
| 45 182 140 |
| 22 110 140 |
| 26 112 140 |
| 30 116 116 |
| 35 122 116 |
| 38 130 116 |
| 45 140 116 |
| 23 152 116 |
| 25 166 116 |
| 27 182 116 |
| 29 200 116 |
| 22 112 116 |
| 24 116 116 |
| 26 122 116 |
| 28 130 116 |
| 30 140 140 |
| 32 152 140 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- Test the ITM_CASE transformation. |
| >>-- |
| >>?section SCBUG_Q2 |
| >>select offset(runningsum(a),1), |
| +> offset(case when a < 10 then runningsum(a) else runningsum(a) end, 1) |
| +>from t063t1 sequence by a order by a; |
| |
| (EXPR) (EXPR) |
| -------------------- -------------------- |
| |
| ? ? |
| 1 1 |
| 3 3 |
| 6 6 |
| 10 10 |
| 15 15 |
| 21 21 |
| 28 28 |
| 36 36 |
| 45 45 |
| 55 55 |
| 66 66 |
| 78 78 |
| 91 91 |
| 105 105 |
| 120 120 |
| 136 136 |
| 153 153 |
| 171 171 |
| 190 190 |
| 210 210 |
| 231 231 |
| 253 253 |
| 276 276 |
| 300 300 |
| |
| --- 25 row(s) selected. |
| >> |
| >> |
| >>-- Test the ITM_OR transformation. |
| >>-- |
| >>-- Each of the rows since expressions in the following query should |
| >>-- return the same result. However, when short-circuiting is allowed, the |
| >>-- second rows since gives incorrect results because the sum on the right |
| >>-- side of the OR is skipped for the first rows because the left side is |
| >>-- TRUE. |
| >>-- |
| >>?section SCBUG_Q3 |
| >>select rows since inclusive (runningsum(b) < 300), |
| +> rows since inclusive (runningsum(b) < 300 OR runningsum(b) < 300) |
| +>from t063t1 sequence by a order by a; |
| |
| (EXPR) (EXPR) |
| ----------- ----------- |
| |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 1 1 |
| 2 2 |
| 3 3 |
| 4 4 |
| 5 5 |
| 6 6 |
| 7 7 |
| 8 8 |
| 9 9 |
| 10 10 |
| 11 11 |
| 12 12 |
| 13 13 |
| 14 14 |
| 15 15 |
| 16 16 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- Test the ITM_AND transformation. |
| >>-- |
| >>-- Both of the rows since expressions in the following query should |
| >>-- return the same result. However, when short-circuiting is allowed, the |
| >>-- second rows since gives incorrect results because the sum on the right |
| >>-- side of the AND is skipped for the first rows because the left side is |
| >>-- FALSE. |
| >>-- |
| >>?section SCBUG_Q4 |
| >>select rows since inclusive (runningsum(b) > 300), |
| +> rows since inclusive (runningsum(b) > 300 AND runningsum(b) > 300) |
| +>from t063t1 sequence by a order by a; |
| |
| (EXPR) (EXPR) |
| ----------- ----------- |
| |
| ? ? |
| ? ? |
| ? ? |
| ? ? |
| ? ? |
| ? ? |
| ? ? |
| ? ? |
| ? ? |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| 0 0 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- Test nested case |
| >>-- |
| >>?section SCBUG_Q5 |
| >>select offset(runningsum(a),1), |
| +> offset(case when a < 10 then |
| +> case when a < 5 then runningsum(a) else runningsum(a) end |
| +> else runningsum(a) end, 1) |
| +>from t063t1 sequence by a order by a; |
| |
| (EXPR) (EXPR) |
| -------------------- -------------------- |
| |
| ? ? |
| 1 1 |
| 3 3 |
| 6 6 |
| 10 10 |
| 15 15 |
| 21 21 |
| 28 28 |
| 36 36 |
| 45 45 |
| 55 55 |
| 66 66 |
| 78 78 |
| 91 91 |
| 105 105 |
| 120 120 |
| 136 136 |
| 153 153 |
| 171 171 |
| 190 190 |
| 210 210 |
| 231 231 |
| 253 253 |
| 276 276 |
| 300 300 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- Test nested sequence functions |
| >>-- |
| >>?section SCBUG_Q6 |
| >>select offset(runningsum(a),1), |
| +> offset(case when a < 10 then runningsum(a) else runningsum(a) end, 1) |
| +>from |
| +> (select offset(runningsum(a),1), |
| +> offset(case when a < 10 then runningsum(a) else runningsum(a) end, 1) |
| +> from t063t1 sequence by a) T(a,b) |
| +>sequence by a order by a; |
| |
| (EXPR) (EXPR) |
| -------------------- -------------------- |
| |
| ? ? |
| 1 1 |
| 4 4 |
| 10 10 |
| 20 20 |
| 35 35 |
| 56 56 |
| 84 84 |
| 120 120 |
| 165 165 |
| 220 220 |
| 286 286 |
| 364 364 |
| 455 455 |
| 560 560 |
| 680 680 |
| 816 816 |
| 969 969 |
| 1140 1140 |
| 1330 1330 |
| 1540 1540 |
| 1771 1771 |
| 2024 2024 |
| 2300 2300 |
| 2600 2600 |
| |
| --- 25 row(s) selected. |
| >> |
| >>-- |
| >>-- |
| >>-- Test for movingsum with all nulls in moving window |
| >>-- |
| >>-- Genesis Case Number: 10-020725-5529 |
| >> |
| >>-- The following shows an example of MOVINGSUM with a moving window size of 3 where all |
| >>-- values (b) are NULL. The second expression shows the correct equivalent MOVINGSUM semantics: |
| >> |
| >>select a, b, MOVINGSUM(b,3) as MSUM1, CASE MOVINGCOUNT(b,3) WHEN 0 THEN NULL ELSE MOVINGSUM(b,3) END as MSUM2 FROM |
| +>(values |
| +>(8, 1), |
| +>(9, NULL), |
| +>(11, NULL), |
| +>(17, NULL), |
| +>(33, 6), |
| +>(34, NULL), |
| +>(35, NULL), |
| +>(36, NULL), |
| +>(37, 7)) |
| +>as T(a,b) sequence by a; |
| |
| A B MSUM1 MSUM2 |
| ------ ------ -------------------- -------------------- |
| |
| 8 1 1 1 |
| 9 ? 1 1 |
| 11 ? 1 1 |
| 17 ? ? ? |
| 33 6 6 6 |
| 34 ? 6 6 |
| 35 ? 6 6 |
| 36 ? ? ? |
| 37 7 7 7 |
| |
| --- 9 row(s) selected. |
| >> |
| >>-- |
| >>-- The following shows an example of MOVINGAVG with a moving window size of 3 where all |
| >>-- values (b) are NULL. The second expression shows the correct equivalent MOVINGAVG semantics: |
| >> |
| >>select a, b, MOVINGAVG(b,3) as MAVG1, CASE MOVINGCOUNT(b,3) WHEN 0 THEN NULL ELSE MOVINGSUM(b,3)/MOVINGCOUNT(b,3) END as MAVG2 FROM |
| +>(values |
| +>(8, 1), |
| +>(9, NULL), |
| +>(11, NULL), |
| +>(17, NULL), |
| +>(33, 6), |
| +>(34, NULL), |
| +>(35, NULL), |
| +>(36, NULL), |
| +>(37, 7)) |
| +>as T(a,b) sequence by a; |
| |
| A B MAVG1 MAVG2 |
| ------ ------ -------------------- -------------------- |
| |
| 8 1 1 1 |
| 9 ? 1 1 |
| 11 ? 1 1 |
| 17 ? ? ? |
| 33 6 6 6 |
| 34 ? 6 6 |
| 35 ? 6 6 |
| 36 ? ? ? |
| 37 7 7 7 |
| |
| --- 9 row(s) selected. |
| >> |
| >>-- |
| >>-- |
| >>-- Test for movingsum with window size of 0 |
| >>-- |
| >>-- The following show examples of MOVINGSUM and MOVINGAVG with a moving window size of 0 |
| >>-- |
| >> |
| >>select a, b, MOVINGSUM(b,0) as MSUM, MOVINGAVG(b,0) as MAVG FROM |
| +>(values |
| +>(8, 1), |
| +>(9, 2), |
| +>(11, NULL), |
| +>(33, 6), |
| +>(37, 7)) |
| +>as T(a,b) sequence by a; |
| |
| A B MSUM MAVG |
| ------ ------ -------------------- -------------------- |
| |
| 8 1 ? ? |
| 9 2 ? ? |
| 11 ? ? ? |
| 33 6 ? ? |
| 37 7 ? ? |
| |
| --- 5 row(s) selected. |
| >> |
| >>select a, b, c, MOVINGSUM(c,b) as MSUM, MOVINGAVG(c,b) as MAVG FROM |
| +>(values |
| +>(1,1, 1), |
| +>(2,0, 2), |
| +>(3,2, NULL), |
| +>(4,0, 6), |
| +>(5,3, 7)) |
| +>as T(a,b,c) sequence by a; |
| |
| A B C MSUM MAVG |
| ------ ------ ------ -------------------- -------------------- |
| |
| 1 1 1 1 1 |
| 2 0 2 ? ? |
| 3 2 ? 2 2 |
| 4 0 6 ? ? |
| 5 3 7 13 6 |
| |
| --- 5 row(s) selected. |
| >> |
| >>-- |
| >>-- Test for Case-10-021213-4041: MOVINGMIN/MAX do not treat negative window |
| >>-- sizes properly. |
| >>-- |
| >> |
| >>select a, b, |
| +>movingmax(b,a,2000) as MMAX_ORG, |
| +>CASE WHEN (a < 0 OR a IS NULL) THEN runningmax(b) ELSE movingmax(b,a) END AS MMAX_CORRECT |
| +>from (values |
| +>(2, 1, 1), |
| +>(2, 2, 2), |
| +>(2, 3, 3), |
| +>(2, 16, 4), |
| +>(-2, 1, 5), |
| +>(2, 2, 6), |
| +>(-2, 3, 7), |
| +>(2, 5, 8), |
| +>(NULL, 1, 9), |
| +>(2, 2, 10), |
| +>(NULL, 3, 11), |
| +>(2, 2, 12), |
| +>(2, 3, 13), |
| +>(2, 26, 14), |
| +>(-2, 1, 15), |
| +>(2, 2, 16), |
| +>(-2, 3, 17), |
| +>(2, 5, 18), |
| +>(NULL, 1, 19), |
| +>(2, 2, 20), |
| +>(NULL, 3, 21), |
| +>(2, 2, 22), |
| +>(2, 3, 23), |
| +>(2, 36, 24), |
| +>(-2, 1, 25), |
| +>(2, 2, 26), |
| +>(-2, 3, 27), |
| +>(2, 5, 28), |
| +>(NULL, 1, 29), |
| +>(2, 2, 30), |
| +>(NULL, 3, 31), |
| +>(2, 2, 32), |
| +>(2, 3, 33), |
| +>(2, 46, 34), |
| +>(-2, 1, 35), |
| +>(2, 2, 36), |
| +>(-2, 3, 37), |
| +>(2, 5, 38), |
| +>(NULL, 1, 39), |
| +>(2, 2, 40), |
| +>(NULL, 3, 41), |
| +>(2, 2, 42), |
| +>(2, 3, 43), |
| +>(2, 56, 44), |
| +>(-2, 1, 45), |
| +>(2, 2, 46), |
| +>(-2, 3, 47), |
| +>(2, 5, 48), |
| +>(NULL, 1, 49), |
| +>(2, 2, 50), |
| +>(NULL, 3, 51), |
| +>(2, 2, 52), |
| +>(2, 3, 53), |
| +>(2, 6, 54), |
| +>(-2, 1, 55), |
| +>(2, 2, 56), |
| +>(-2, 3, 57), |
| +>(2, 5, 58), |
| +>(NULL, 1, 59), |
| +>(2, 2, 60), |
| +>(NULL, 3, 61), |
| +>(2, 2, 62), |
| +>(2, 3, 63), |
| +>(2, 6, 64), |
| +>(-2, 1, 65), |
| +>(2, 2, 66), |
| +>(-2, 3, 67), |
| +>(2, 5, 68), |
| +>(NULL, 1, 69), |
| +>(2, 4, 120)) |
| +>as T(a,b,c) SEQUENCE BY c; |
| |
| A B MMAX_ORG MMAX_CORRECT |
| ------ ------ -------- ------------ |
| |
| 2 1 1 1 |
| 2 2 2 2 |
| 2 3 3 3 |
| 2 16 16 16 |
| -2 1 16 16 |
| 2 2 2 2 |
| -2 3 16 16 |
| 2 5 5 5 |
| ? 1 16 16 |
| 2 2 2 2 |
| ? 3 16 16 |
| 2 2 3 3 |
| 2 3 3 3 |
| 2 26 26 26 |
| -2 1 26 26 |
| 2 2 2 2 |
| -2 3 26 26 |
| 2 5 5 5 |
| ? 1 26 26 |
| 2 2 2 2 |
| ? 3 26 26 |
| 2 2 3 3 |
| 2 3 3 3 |
| 2 36 36 36 |
| -2 1 36 36 |
| 2 2 2 2 |
| -2 3 36 36 |
| 2 5 5 5 |
| ? 1 36 36 |
| 2 2 2 2 |
| ? 3 36 36 |
| 2 2 3 3 |
| 2 3 3 3 |
| 2 46 46 46 |
| -2 1 46 46 |
| 2 2 2 2 |
| -2 3 46 46 |
| 2 5 5 5 |
| ? 1 46 46 |
| 2 2 2 2 |
| ? 3 46 46 |
| 2 2 3 3 |
| 2 3 3 3 |
| 2 56 56 56 |
| -2 1 56 56 |
| 2 2 2 2 |
| -2 3 56 56 |
| 2 5 5 5 |
| ? 1 56 56 |
| 2 2 2 2 |
| ? 3 56 56 |
| 2 2 3 3 |
| 2 3 3 3 |
| 2 6 6 6 |
| -2 1 56 56 |
| 2 2 2 2 |
| -2 3 56 56 |
| 2 5 5 5 |
| ? 1 56 56 |
| 2 2 2 2 |
| ? 3 56 56 |
| 2 2 3 3 |
| 2 3 3 3 |
| 2 6 6 6 |
| -2 1 56 56 |
| 2 2 2 2 |
| -2 3 56 56 |
| 2 5 5 5 |
| ? 1 56 56 |
| 2 4 4 4 |
| |
| --- 70 row(s) selected. |
| >> |
| >>log; |
| >> |
| >> |
| >>?section olapcrtab |
| >> |
| >>create table olap_emp |
| +> ( |
| +> Num integer unsigned no default not null not droppable , |
| +> LastName char(24) no default not null not droppable , |
| +> FirstName char(14) no default not null not droppable , |
| +> MiddleInitial char no default not null not droppable , |
| +> Sex char no default not null not droppable , |
| +> WorkGroupNum integer unsigned no default not null not droppable , |
| +> PayGrade integer unsigned no default not null not droppable , |
| +> AnnualSalary integer unsigned no default not null not droppable , |
| +> DateOfBirth date no default not null not droppable , |
| +> primary key ( Num ) not droppable |
| +> ) |
| +> store by primary key ; |
| |
| --- SQL operation complete. |
| >> |
| >>-- ---------------------------------------------------- |
| >> |
| >> |
| >> |
| >>insert into olap_emp values |
| +>(1,'Anderson','Alvin','A','M',1,1,21,DATE '12/07/1941'), |
| +>(2,'Anderson','Anna ','A','F',1,2,22,DATE '12/07/1941'), |
| +>(3,'Anderson','Aloysius','A','M',1,3,23,DATE '12/07/1941'), |
| +>(4, 'Anderson','Abby ','A','F',1,4,24 ,DATE '12/07/1941'), |
| +>(5,'Anderson','Alan ','A','M',1,5,25, DATE '12/07/1941'), |
| +>(6,'Anderson','Anne ','A','F',1,6,26,DATE '12/07/1941'), |
| +>(7,'Anderson','Abelard','A','M',1,7,27,DATE '12/07/1941'), |
| +>(8,'Anderson','Alice','A','F',1,8,28,DATE '12/07/1941'), |
| +>(9,'Anderson','Anton','A','M',1,9,29,DATE '12/07/1941'), |
| +>(10,'Anderson','Alicia ','A','F',1,10,30,DATE '12/07/1941'), |
| +>(11,'Anderson','Abe','A','M',2,1,21,DATE '12/07/1941'), |
| +>(12,'Anderson','Amanda ','A','F',2,2,22,DATE '12/07/1941'), |
| +>(13,'Anderson','Andrew ','A','M',2,3,23,DATE '12/07/1941'), |
| +>(14,'Anderson','Annette','A','F',2,4,24,DATE '12/07/1941'), |
| +>(15,'Anderson','Akihiro','A','M',2,5,25,DATE '12/07/1941'), |
| +>(16,'Anderson','Andrea ','A','F',2,6,26,DATE '12/07/1941'), |
| +>(17,'Anderson','Arthur ','A','M',2,7,27,DATE '12/07/1941'), |
| +>(18,'Anderson','Amy ','A','F',2,8,28,DATE '12/07/1941'), |
| +>(19,'Anderson','Arnold ','A','M',2,9,29,DATE '12/07/1941'), |
| +>(20,'Anderson','Adriana','A','F',2,10,30,DATE '12/07/1941'), |
| +>(21,'Anderson','Arturo ','A','M',3,1,21,DATE '12/07/1941'), |
| +>(22,'Anderson','Annabelle','A','F',3,2,22,DATE '12/07/1941'), |
| +>(23,'Anderson','Andreas','A','M',3,3,23,DATE '12/07/1941'), |
| +>(24,'Anderson','Becky','A','F',3,4,24,DATE '12/07/1941'), |
| +>(25,'Anderson','Bill ','A','M',3,5,25,DATE '12/07/1941'), |
| +>(26,'Anderson','Betsy','A','F',3,6,26,DATE '12/07/1941'), |
| +>(27,'Anderson','Bob ','A','M',3,7,27,DATE '12/07/1941'), |
| +>(28,'Anderson','Belinda','A','F',3,8,28,DATE '12/07/1941'), |
| +>(29,'Anderson','Bruce','A','M',3,9,29,DATE '12/07/1941'), |
| +>(30,'Anderson','Bridget','A','F',3,10,30,DATE '12/07/1941'); |
| |
| --- 30 row(s) inserted. |
| >> |
| >> |
| >> |
| >> |
| >>?section olaptest |
| >>--*********************************************************************************** |
| >>--**************************************TESTING************************************** |
| >>--*********************************************************************************** |
| >>--*********************************************************************************** |
| >> |
| >>--set schema olapcat.olapsch; |
| >> |
| >>--CONTROL QUERY DEFAULT DEF_MAX_HISTORY_ROWS '1024'; |
| >> |
| >>--**************************************ALL OLAP FUNCTIONS/ROWS UNBOUNDED PRECEDING ***************************** |
| >>SELECT |
| +> num, workgroupnum , |
| +> RANK() OVER ( PARTITION BY workgroupnum ORDER BY num ) , |
| +> DENSE_RANK( ) OVER ( PARTITION BY workgroupnum ORDER BY num ), |
| +> ROW_NUMBER() OVER ( PARTITION BY workgroupnum ORDER BY num ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM (EXPR) (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- -------------------- |
| |
| 1 1 1 1 1 |
| 2 1 2 2 2 |
| 3 1 3 3 3 |
| 4 1 4 4 4 |
| 5 1 5 5 5 |
| 6 1 6 6 6 |
| 7 1 7 7 7 |
| 8 1 8 8 8 |
| 9 1 9 9 9 |
| 10 1 10 10 10 |
| 11 2 1 1 1 |
| 12 2 2 2 2 |
| 13 2 3 3 3 |
| 14 2 4 4 4 |
| 15 2 5 5 5 |
| 16 2 6 6 6 |
| 17 2 7 7 7 |
| 18 2 8 8 8 |
| 19 2 9 9 9 |
| 20 2 10 10 10 |
| 21 3 1 1 1 |
| 22 3 2 2 2 |
| 23 3 3 3 3 |
| 24 3 4 4 4 |
| 25 3 5 5 5 |
| 26 3 6 6 6 |
| 27 3 7 7 7 |
| 28 3 8 8 8 |
| 29 3 9 9 9 |
| 30 3 10 10 10 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> MIN(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> MAX(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> VARIANCE(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> STDDEV(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> COUNT(*) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- ---------- ---------- ------------------------- ------------------------- -------------------- |
| |
| 1 1 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 2 1 22 43 21 21 22 5.00000000000000000E-001 7.07106781186547584E-001 2 |
| 3 1 23 66 22 21 23 1.00000000000000000E+000 1.00000000000000000E+000 3 |
| 4 1 24 90 22 21 24 1.66666666666666688E+000 1.29099444873580560E+000 4 |
| 5 1 25 115 23 21 25 2.50000000000000000E+000 1.58113883008418976E+000 5 |
| 6 1 26 141 23 21 26 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 7 1 27 168 24 21 27 4.66666666666666688E+000 2.16024689946928704E+000 7 |
| 8 1 28 196 24 21 28 6.00000000000000000E+000 2.44948974278317792E+000 8 |
| 9 1 29 225 25 21 29 7.50000000000000000E+000 2.73861278752583072E+000 9 |
| 10 1 30 255 25 21 30 9.16666666666666624E+000 3.02765035409749184E+000 10 |
| 11 2 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 12 2 22 43 21 21 22 5.00000000000000000E-001 7.07106781186547584E-001 2 |
| 13 2 23 66 22 21 23 1.00000000000000000E+000 1.00000000000000000E+000 3 |
| 14 2 24 90 22 21 24 1.66666666666666688E+000 1.29099444873580560E+000 4 |
| 15 2 25 115 23 21 25 2.50000000000000000E+000 1.58113883008418976E+000 5 |
| 16 2 26 141 23 21 26 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 17 2 27 168 24 21 27 4.66666666666666688E+000 2.16024689946928704E+000 7 |
| 18 2 28 196 24 21 28 6.00000000000000000E+000 2.44948974278317792E+000 8 |
| 19 2 29 225 25 21 29 7.50000000000000000E+000 2.73861278752583072E+000 9 |
| 20 2 30 255 25 21 30 9.16666666666666624E+000 3.02765035409749184E+000 10 |
| 21 3 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 22 3 22 43 21 21 22 5.00000000000000000E-001 7.07106781186547584E-001 2 |
| 23 3 23 66 22 21 23 1.00000000000000000E+000 1.00000000000000000E+000 3 |
| 24 3 24 90 22 21 24 1.66666666666666688E+000 1.29099444873580560E+000 4 |
| 25 3 25 115 23 21 25 2.50000000000000000E+000 1.58113883008418976E+000 5 |
| 26 3 26 141 23 21 26 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 27 3 27 168 24 21 27 4.66666666666666688E+000 2.16024689946928704E+000 7 |
| 28 3 28 196 24 21 28 6.00000000000000000E+000 2.44948974278317792E+000 8 |
| 29 3 29 225 25 21 29 7.50000000000000000E+000 2.73861278752583072E+000 9 |
| 30 3 30 255 25 21 30 9.16666666666666624E+000 3.02765035409749184E+000 10 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>--**************************************ALL OLAP FUNCTIONS/ROWS N PRECEDING ***************************** |
| >> |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) , |
| +> MIN(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) , |
| +> MAX(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) , |
| +> VARIANCE(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) , |
| +> STDDEV(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) , |
| +> COUNT(*) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 5 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- ---------- ---------- ------------------------- ------------------------- -------------------- |
| |
| 1 1 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 2 1 22 43 21 21 22 5.00000000000000000E-001 7.07106781186547584E-001 2 |
| 3 1 23 66 22 21 23 1.00000000000000000E+000 1.00000000000000000E+000 3 |
| 4 1 24 90 22 21 24 1.66666666666666688E+000 1.29099444873580560E+000 4 |
| 5 1 25 115 23 21 25 2.50000000000000000E+000 1.58113883008418976E+000 5 |
| 6 1 26 141 23 21 26 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 7 1 27 147 24 22 27 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 8 1 28 153 25 23 28 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 9 1 29 159 26 24 29 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 10 1 30 165 27 25 30 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 11 2 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 12 2 22 43 21 21 22 5.00000000000000000E-001 7.07106781186547584E-001 2 |
| 13 2 23 66 22 21 23 1.00000000000000000E+000 1.00000000000000000E+000 3 |
| 14 2 24 90 22 21 24 1.66666666666666688E+000 1.29099444873580560E+000 4 |
| 15 2 25 115 23 21 25 2.50000000000000000E+000 1.58113883008418976E+000 5 |
| 16 2 26 141 23 21 26 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 17 2 27 147 24 22 27 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 18 2 28 153 25 23 28 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 19 2 29 159 26 24 29 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 20 2 30 165 27 25 30 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 21 3 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 22 3 22 43 21 21 22 5.00000000000000000E-001 7.07106781186547584E-001 2 |
| 23 3 23 66 22 21 23 1.00000000000000000E+000 1.00000000000000000E+000 3 |
| 24 3 24 90 22 21 24 1.66666666666666688E+000 1.29099444873580560E+000 4 |
| 25 3 25 115 23 21 25 2.50000000000000000E+000 1.58113883008418976E+000 5 |
| 26 3 26 141 23 21 26 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 27 3 27 147 24 22 27 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 28 3 28 153 25 23 28 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 29 3 29 159 26 24 29 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| 30 3 30 165 27 25 30 3.50000000000000000E+000 1.87082869338697056E+000 6 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--**************************************ALL OLAP FUNCTIONS/ROWS CURRENT ROW ***************************** |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) , |
| +> MIN(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) , |
| +> MAX(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) , |
| +> VARIANCE(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) , |
| +> STDDEV(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) , |
| +> COUNT(*) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- ---------- ---------- ------------------------- ------------------------- -------------------- |
| |
| 1 1 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 2 1 22 22 22 22 22 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 3 1 23 23 23 23 23 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 4 1 24 24 24 24 24 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 5 1 25 25 25 25 25 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 6 1 26 26 26 26 26 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 7 1 27 27 27 27 27 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 8 1 28 28 28 28 28 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 9 1 29 29 29 29 29 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 10 1 30 30 30 30 30 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 11 2 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 12 2 22 22 22 22 22 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 13 2 23 23 23 23 23 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 14 2 24 24 24 24 24 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 15 2 25 25 25 25 25 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 16 2 26 26 26 26 26 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 17 2 27 27 27 27 27 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 18 2 28 28 28 28 28 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 19 2 29 29 29 29 29 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 20 2 30 30 30 30 30 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 21 3 21 21 21 21 21 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 22 3 22 22 22 22 22 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 23 3 23 23 23 23 23 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 24 3 24 24 24 24 24 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 25 3 25 25 25 25 25 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 26 3 26 26 26 26 26 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 27 3 27 27 27 27 27 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 28 3 28 28 28 28 28 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 29 3 29 29 29 29 29 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| 30 3 30 30 30 30 30 0.00000000000000000E+000 0.00000000000000000E+000 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >> |
| >> |
| >> |
| >>--**************************************Support for ASC / DESC**************************** |
| >> |
| >>---PARTITION BY/ORDER BY |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >>---PARTITION BY/ORDER BY ASC |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ASC ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >>---PARTITION BY/ORDER BY DESC |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num desc ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 10 1 30 30 |
| 9 1 29 59 |
| 8 1 28 87 |
| 7 1 27 114 |
| 6 1 26 140 |
| 5 1 25 165 |
| 4 1 24 189 |
| 3 1 23 212 |
| 2 1 22 234 |
| 1 1 21 255 |
| 20 2 30 30 |
| 19 2 29 59 |
| 18 2 28 87 |
| 17 2 27 114 |
| 16 2 26 140 |
| 15 2 25 165 |
| 14 2 24 189 |
| 13 2 23 212 |
| 12 2 22 234 |
| 11 2 21 255 |
| 30 3 30 30 |
| 29 3 29 59 |
| 28 3 28 87 |
| 27 3 27 114 |
| 26 3 26 140 |
| 25 3 25 165 |
| 24 3 24 189 |
| 23 3 23 212 |
| 22 3 22 234 |
| 21 3 21 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--*****************************olap with group by************************************************* |
| >> |
| >>SELECT paygrade,workgroupnum, |
| +> SUM(annualsalary) , |
| +> SUM( paygrade) OVER (ORDER BY workgroupnum, num rows UNBOUNDED PRECEDING) |
| +>from olap_emp |
| +>group by paygrade,workgroupnum, num |
| +>order by 1,2,3,4; |
| |
| PAYGRADE WORKGROUPNUM (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- |
| |
| 1 1 21 1 |
| 1 2 21 56 |
| 1 3 21 111 |
| 2 1 22 3 |
| 2 2 22 58 |
| 2 3 22 113 |
| 3 1 23 6 |
| 3 2 23 61 |
| 3 3 23 116 |
| 4 1 24 10 |
| 4 2 24 65 |
| 4 3 24 120 |
| 5 1 25 15 |
| 5 2 25 70 |
| 5 3 25 125 |
| 6 1 26 21 |
| 6 2 26 76 |
| 6 3 26 131 |
| 7 1 27 28 |
| 7 2 27 83 |
| 7 3 27 138 |
| 8 1 28 36 |
| 8 2 28 91 |
| 8 3 28 146 |
| 9 1 29 45 |
| 9 2 29 100 |
| 9 3 29 155 |
| 10 1 30 55 |
| 10 2 30 110 |
| 10 3 30 165 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>SELECT paygrade,workgroupnum, |
| +> SUM(annualsalary) , |
| +> SUM( paygrade) OVER (PARTITION BY workgroupnum ORDER BY SUM(annualsalary) ROWS UNBOUNDED PRECEDING) |
| +>from olap_emp |
| +>group by paygrade,workgroupnum; |
| |
| PAYGRADE WORKGROUPNUM (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- |
| |
| 1 1 21 1 |
| 2 1 22 3 |
| 3 1 23 6 |
| 4 1 24 10 |
| 5 1 25 15 |
| 6 1 26 21 |
| 7 1 27 28 |
| 8 1 28 36 |
| 9 1 29 45 |
| 10 1 30 55 |
| 1 2 21 1 |
| 2 2 22 3 |
| 3 2 23 6 |
| 4 2 24 10 |
| 5 2 25 15 |
| 6 2 26 21 |
| 7 2 27 28 |
| 8 2 28 36 |
| 9 2 29 45 |
| 10 2 30 55 |
| 1 3 21 1 |
| 2 3 22 3 |
| 3 3 23 6 |
| 4 3 24 10 |
| 5 3 25 15 |
| 6 3 26 21 |
| 7 3 27 28 |
| 8 3 28 36 |
| 9 3 29 45 |
| 10 3 30 55 |
| |
| --- 30 row(s) selected. |
| >>SELECT paygrade,workgroupnum, |
| +> SUM(annualsalary) , |
| +> SUM( paygrade) OVER (PARTITION BY workgroupnum ORDER BY sum_sal ROWS UNBOUNDED PRECEDING) |
| +>from |
| +> (select paygrade,workgroupnum,annualsalary, sum(annualsalary) sum_sal from olap_emp group by paygrade,workgroupnum, annualsalary) T group by paygrade,workgroupnum,sum_sal; |
| |
| PAYGRADE WORKGROUPNUM (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- |
| |
| 1 1 21 1 |
| 2 1 22 3 |
| 3 1 23 6 |
| 4 1 24 10 |
| 5 1 25 15 |
| 6 1 26 21 |
| 7 1 27 28 |
| 8 1 28 36 |
| 9 1 29 45 |
| 10 1 30 55 |
| 1 2 21 1 |
| 2 2 22 3 |
| 3 2 23 6 |
| 4 2 24 10 |
| 5 2 25 15 |
| 6 2 26 21 |
| 7 2 27 28 |
| 8 2 28 36 |
| 9 2 29 45 |
| 10 2 30 55 |
| 1 3 21 1 |
| 2 3 22 3 |
| 3 3 23 6 |
| 4 3 24 10 |
| 5 3 25 15 |
| 6 3 26 21 |
| 7 3 27 28 |
| 8 3 28 36 |
| 9 3 29 45 |
| 10 3 30 55 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>---supported |
| >>SELECT paygrade,workgroupnum, |
| +> SUM(annualsalary) , |
| +> AVG( SUM(annualsalary) ) OVER (PARTITION BY paygrade ORDER BY workgroupnum ROWS UNBOUNDED PRECEDING) |
| +>from olap_emp |
| +>group by paygrade,workgroupnum |
| +>order by 1,2,3,4; |
| |
| PAYGRADE WORKGROUPNUM (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- |
| |
| 1 1 21 21 |
| 1 2 21 21 |
| 1 3 21 21 |
| 2 1 22 22 |
| 2 2 22 22 |
| 2 3 22 22 |
| 3 1 23 23 |
| 3 2 23 23 |
| 3 3 23 23 |
| 4 1 24 24 |
| 4 2 24 24 |
| 4 3 24 24 |
| 5 1 25 25 |
| 5 2 25 25 |
| 5 3 25 25 |
| 6 1 26 26 |
| 6 2 26 26 |
| 6 3 26 26 |
| 7 1 27 27 |
| 7 2 27 27 |
| 7 3 27 27 |
| 8 1 28 28 |
| 8 2 28 28 |
| 8 3 28 28 |
| 9 1 29 29 |
| 9 2 29 29 |
| 9 3 29 29 |
| 10 1 30 30 |
| 10 2 30 30 |
| 10 3 30 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum, |
| +> SUM(annualsalary) , |
| +> SUM( AVG(annualsalary) ) OVER (PARTITION BY paygrade ORDER BY workgroupnum ROWS UNBOUNDED PRECEDING) |
| +>from olap_emp |
| +>group by paygrade,workgroupnum |
| +>order by 1,2,3,4; |
| |
| PAYGRADE WORKGROUPNUM (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- |
| |
| 1 1 21 21 |
| 1 2 21 42 |
| 1 3 21 63 |
| 2 1 22 22 |
| 2 2 22 44 |
| 2 3 22 66 |
| 3 1 23 23 |
| 3 2 23 46 |
| 3 3 23 69 |
| 4 1 24 24 |
| 4 2 24 48 |
| 4 3 24 72 |
| 5 1 25 25 |
| 5 2 25 50 |
| 5 3 25 75 |
| 6 1 26 26 |
| 6 2 26 52 |
| 6 3 26 78 |
| 7 1 27 27 |
| 7 2 27 54 |
| 7 3 27 81 |
| 8 1 28 28 |
| 8 2 28 56 |
| 8 3 28 84 |
| 9 1 29 29 |
| 9 2 29 58 |
| 9 3 29 87 |
| 10 1 30 30 |
| 10 2 30 60 |
| 10 3 30 90 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>--********************************** Multiple (PARTITION BY /ORDER BY) support***************************** |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- |
| |
| 1 1 21 21 21 |
| 2 1 22 43 21 |
| 3 1 23 66 22 |
| 4 1 24 90 22 |
| 5 1 25 115 23 |
| 6 1 26 141 23 |
| 7 1 27 168 24 |
| 8 1 28 196 24 |
| 9 1 29 225 25 |
| 10 1 30 255 25 |
| 11 2 21 21 21 |
| 12 2 22 43 21 |
| 13 2 23 66 22 |
| 14 2 24 90 22 |
| 15 2 25 115 23 |
| 16 2 26 141 23 |
| 17 2 27 168 24 |
| 18 2 28 196 24 |
| 19 2 29 225 25 |
| 20 2 30 255 25 |
| 21 3 21 21 21 |
| 22 3 22 43 21 |
| 23 3 23 66 22 |
| 24 3 24 90 22 |
| 25 3 25 115 23 |
| 26 3 26 141 23 |
| 27 3 27 168 24 |
| 28 3 28 196 24 |
| 29 3 29 225 25 |
| 30 3 30 255 25 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num DESC ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num DESC ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num DESC ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- |
| |
| 10 1 30 30 30 |
| 9 1 29 59 29 |
| 8 1 28 87 29 |
| 7 1 27 114 28 |
| 6 1 26 140 28 |
| 5 1 25 165 27 |
| 4 1 24 189 27 |
| 3 1 23 212 26 |
| 2 1 22 234 26 |
| 1 1 21 255 25 |
| 20 2 30 30 30 |
| 19 2 29 59 29 |
| 18 2 28 87 29 |
| 17 2 27 114 28 |
| 16 2 26 140 28 |
| 15 2 25 165 27 |
| 14 2 24 189 27 |
| 13 2 23 212 26 |
| 12 2 22 234 26 |
| 11 2 21 255 25 |
| 30 3 30 30 30 |
| 29 3 29 59 29 |
| 28 3 28 87 29 |
| 27 3 27 114 28 |
| 26 3 26 140 28 |
| 25 3 25 165 27 |
| 24 3 24 189 27 |
| 23 3 23 212 26 |
| 22 3 22 234 26 |
| 21 3 21 255 25 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS UNBOUNDED PRECEDING ) as olapsum, |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS UNBOUNDED PRECEDING ) as olapavg |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- |
| |
| 1 1 21 21 21 |
| 2 1 22 43 21 |
| 3 1 23 66 22 |
| 4 1 24 90 22 |
| 5 1 25 115 23 |
| 6 1 26 141 23 |
| 7 1 27 168 24 |
| 8 1 28 196 24 |
| 9 1 29 225 25 |
| 10 1 30 255 25 |
| 11 2 21 276 25 |
| 12 2 22 298 24 |
| 13 2 23 321 24 |
| 14 2 24 345 24 |
| 15 2 25 370 24 |
| 16 2 26 396 24 |
| 17 2 27 423 24 |
| 18 2 28 451 25 |
| 19 2 29 480 25 |
| 20 2 30 510 25 |
| 21 3 21 531 25 |
| 22 3 22 553 25 |
| 23 3 23 576 25 |
| 24 3 24 600 25 |
| 25 3 25 625 25 |
| 26 3 26 651 25 |
| 27 3 27 678 25 |
| 28 3 28 706 25 |
| 29 3 29 735 25 |
| 30 3 30 765 25 |
| |
| --- 30 row(s) selected. |
| >> |
| >>-- ORDER BY desc / ORDER BY |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num DESC ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num DESC ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( ORDER BY num DESC ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- |
| |
| 30 3 30 30 30 |
| 29 3 29 59 29 |
| 28 3 28 87 29 |
| 27 3 27 114 28 |
| 26 3 26 140 28 |
| 25 3 25 165 27 |
| 24 3 24 189 27 |
| 23 3 23 212 26 |
| 22 3 22 234 26 |
| 21 3 21 255 25 |
| 20 2 30 285 25 |
| 19 2 29 314 26 |
| 18 2 28 342 26 |
| 17 2 27 369 26 |
| 16 2 26 395 26 |
| 15 2 25 420 26 |
| 14 2 24 444 26 |
| 13 2 23 467 25 |
| 12 2 22 489 25 |
| 11 2 21 510 25 |
| 10 1 30 540 25 |
| 9 1 29 569 25 |
| 8 1 28 597 25 |
| 7 1 27 624 26 |
| 6 1 26 650 26 |
| 5 1 25 675 25 |
| 4 1 24 699 25 |
| 3 1 23 722 25 |
| 2 1 22 744 25 |
| 1 1 21 765 25 |
| |
| --- 30 row(s) selected. |
| >> |
| >>---<> ORDER BY's |
| >> |
| >>SELECT num, workgroupnum, paygrade, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum, |
| +> paygrade ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--- |
| >>SELECT num, workgroupnum, paygrade, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>--- |
| >>SELECT num, workgroupnum, paygrade, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>--- |
| >>SELECT num, workgroupnum, paygrade, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>---**************************************Olap distinct support**************************** |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(distinct AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4341] For Window Functions, the set qualifier must be ALL. DISTINCT is not supported for Window Functions. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(all AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>---************************************** PARAMs************************************************ |
| >>set PARAM ?empnum 20; |
| >> |
| >>SELECT ?empnum,num, workgroupnum, annualsalary, |
| +> SUM(all AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp |
| +>where num < ?empnum; |
| |
| (EXPR) NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| --------------------- ---------- ------------ ------------ -------------------- |
| |
| 20.000000 1 1 21 21 |
| 20.000000 2 1 22 43 |
| 20.000000 3 1 23 66 |
| 20.000000 4 1 24 90 |
| 20.000000 5 1 25 115 |
| 20.000000 6 1 26 141 |
| 20.000000 7 1 27 168 |
| 20.000000 8 1 28 196 |
| 20.000000 9 1 29 225 |
| 20.000000 10 1 30 255 |
| 20.000000 11 2 21 21 |
| 20.000000 12 2 22 43 |
| 20.000000 13 2 23 66 |
| 20.000000 14 2 24 90 |
| 20.000000 15 2 25 115 |
| 20.000000 16 2 26 141 |
| 20.000000 17 2 27 168 |
| 20.000000 18 2 28 196 |
| 20.000000 19 2 29 225 |
| |
| --- 19 row(s) selected. |
| >> |
| >>prepare s1 from SELECT ?, workgroupnum, annualsalary --, |
| +> ---SUM(all AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| --- SQL command prepared. |
| >> |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(all AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp |
| +>where num < 20 |
| +>order by 1, 2, 3, 4; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| |
| --- 19 row(s) selected. |
| >> |
| >> |
| >>--************************************olap and Sequence functions in SELECT list ***************************** |
| >>-- no SEQUENCE BY |
| >> |
| >>SELECT RUNNINGCOUNT(AnnualSalary ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4110] The query contains sequence functions but no SEQUENCE BY clause: RUNNINGCOUNT(TRAFODION.SCH.OLAP_EMP.ANNUALSALARY). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>SELECT RUNNINGSUM(AnnualSalary ) |
| +>FROM olap_emp |
| +>SEQUENCE BY num; |
| |
| (EXPR) |
| -------------------- |
| |
| 21 |
| 43 |
| 66 |
| 90 |
| 115 |
| 141 |
| 168 |
| 196 |
| 225 |
| 255 |
| 276 |
| 298 |
| 321 |
| 345 |
| 370 |
| 396 |
| 423 |
| 451 |
| 480 |
| 510 |
| 531 |
| 553 |
| 576 |
| 600 |
| 625 |
| 651 |
| 678 |
| 706 |
| 735 |
| 765 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--- olap and sequence functions together |
| >>SELECT num, SUM(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ), |
| +>RUNNINGSUM(AnnualSalary ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4345] Window and Sequence functions cannot be used together. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>---olap and sequence functions together |
| >>SELECT num, RUNNINGSUM(AnnualSalary ), SUM(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4345] Window and Sequence functions cannot be used together. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--- olap and sequence functions together |
| >>SELECT num, runningSUM(AnnualSalary ), SUM(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp |
| +>sequence by num; |
| |
| *** ERROR[4345] Window and Sequence functions cannot be used together. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--- olap and sequence functions together |
| >>SELECT num, SUM(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ), runningSUM(AnnualSalary ) |
| +>FROM olap_emp |
| +>sequence by num; |
| |
| *** ERROR[4345] Window and Sequence functions cannot be used together. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--************************************olap / qequence in where clause***************************** |
| >> |
| >>SELECT num, SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp |
| +>where SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) > 100; |
| |
| *** ERROR[4346] Window functions can be placed only in the select list. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT num, runningSUM(AnnualSalary ) |
| +>FROM olap_emp |
| +>where runningSUM(paygrade ) > 100 |
| +>sequence by num; |
| |
| *** ERROR[4109] Sequence functions are placed incorrectly: RUNNINGSUM(TRAFODION.SCH.OLAP_EMP.PAYGRADE). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>---************************************** WINDOW FRAME SUPPORT************************************************ |
| >>---PARTITIN BY & ORDER BY |
| >>----------ROWS UNBOUNDED PRECEDING ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS <n> PRECEDING ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 175 |
| 9 1 29 182 |
| 10 1 30 189 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 175 |
| 19 2 29 182 |
| 20 2 30 189 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 175 |
| 29 3 29 182 |
| 30 3 30 189 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 22 |
| 3 1 23 23 |
| 4 1 24 24 |
| 5 1 25 25 |
| 6 1 26 26 |
| 7 1 27 27 |
| 8 1 28 28 |
| 9 1 29 29 |
| 10 1 30 30 |
| 11 2 21 21 |
| 12 2 22 22 |
| 13 2 23 23 |
| 14 2 24 24 |
| 15 2 25 25 |
| 16 2 26 26 |
| 17 2 27 27 |
| 18 2 28 28 |
| 19 2 29 29 |
| 20 2 30 30 |
| 21 3 21 21 |
| 22 3 22 22 |
| 23 3 23 23 |
| 24 3 24 24 |
| 25 3 25 25 |
| 26 3 26 26 |
| 27 3 27 27 |
| 28 3 28 28 |
| 29 3 29 29 |
| 30 3 30 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> PRECEDING ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 ? |
| 5 1 25 ? |
| 6 1 26 ? |
| 7 1 27 21 |
| 8 1 28 43 |
| 9 1 29 66 |
| 10 1 30 90 |
| 11 2 21 ? |
| 12 2 22 ? |
| 13 2 23 ? |
| 14 2 24 ? |
| 15 2 25 ? |
| 16 2 26 ? |
| 17 2 27 21 |
| 18 2 28 43 |
| 19 2 29 66 |
| 20 2 30 90 |
| 21 3 21 ? |
| 22 3 22 ? |
| 23 3 23 ? |
| 24 3 24 ? |
| 25 3 25 ? |
| 26 3 26 ? |
| 27 3 27 21 |
| 28 3 28 43 |
| 29 3 29 66 |
| 30 3 30 90 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >> --SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >> -- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> >= <m>) ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 PRECEDING AND 3 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 21 |
| 5 1 25 43 |
| 6 1 26 66 |
| 7 1 27 90 |
| 8 1 28 94 |
| 9 1 29 98 |
| 10 1 30 102 |
| 11 2 21 ? |
| 12 2 22 ? |
| 13 2 23 ? |
| 14 2 24 21 |
| 15 2 25 43 |
| 16 2 26 66 |
| 17 2 27 90 |
| 18 2 28 94 |
| 19 2 29 98 |
| 20 2 30 102 |
| 21 3 21 ? |
| 22 3 22 ? |
| 23 3 23 ? |
| 24 3 24 21 |
| 25 3 25 43 |
| 26 3 26 66 |
| 27 3 27 90 |
| 28 3 28 94 |
| 29 3 29 98 |
| 30 3 30 102 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> < <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 3 PRECEDING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 175 |
| 9 1 29 182 |
| 10 1 30 189 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 175 |
| 19 2 29 182 |
| 20 2 30 189 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 175 |
| 29 3 29 182 |
| 30 3 30 189 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 3 PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN CURRENT ROW AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 22 |
| 3 1 23 23 |
| 4 1 24 24 |
| 5 1 25 25 |
| 6 1 26 26 |
| 7 1 27 27 |
| 8 1 28 28 |
| 9 1 29 29 |
| 10 1 30 30 |
| 11 2 21 21 |
| 12 2 22 22 |
| 13 2 23 23 |
| 14 2 24 24 |
| 15 2 25 25 |
| 16 2 26 26 |
| 17 2 27 27 |
| 18 2 28 28 |
| 19 2 29 29 |
| 20 2 30 30 |
| 21 3 21 21 |
| 22 3 22 22 |
| 23 3 23 23 |
| 24 3 24 24 |
| 25 3 25 25 |
| 26 3 26 26 |
| 27 3 27 27 |
| 28 3 28 28 |
| 29 3 29 29 |
| 30 3 30 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN CURRENT ROW AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 3 FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> <= <m>) ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 3 FOLLOWING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> > <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 6 FOLLOWING AND 3 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >> |
| >> |
| >>---PARTITIN BY & NO ORDER BY |
| >>----------ROWS UNBOUNDED PRECEDING ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS UNBOUNDED PRECEDING ) as olapsum |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS <n> PRECEDING ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS 6 PRECEDING ) as olapsum |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS CURRENT ROW ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS CURRENT ROW ) AS olapsum |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> PRECEDING ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED PRECEDING AND 6 PRECEDING ) AS olapsum |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS olapsum |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> >= <m>) ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 PRECEDING AND 3 PRECEDING ) AS olapsum |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> < <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 3 PRECEDING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 3 PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN CURRENT ROW AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND CURRENT ROW ===> Supported |
| >>SELECT workgroupnum, count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) |
| +>FROM olap_emp ) T |
| +>GROUP BY workgroupnum; |
| |
| WORKGROUPNUM (EXPR) |
| ------------ -------------------- |
| |
| 1 10 |
| 2 10 |
| 3 10 |
| |
| --- 3 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN CURRENT ROW AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 3 FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> <= <m>) ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 3 FOLLOWING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> > <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ROWS BETWEEN 6 FOLLOWING AND 3 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>---NO PARTITIN BY & ORDER BY |
| >>----------ROWS UNBOUNDED PRECEDING ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 276 |
| 12 2 22 298 |
| 13 2 23 321 |
| 14 2 24 345 |
| 15 2 25 370 |
| 16 2 26 396 |
| 17 2 27 423 |
| 18 2 28 451 |
| 19 2 29 480 |
| 20 2 30 510 |
| 21 3 21 531 |
| 22 3 22 553 |
| 23 3 23 576 |
| 24 3 24 600 |
| 25 3 25 625 |
| 26 3 26 651 |
| 27 3 27 678 |
| 28 3 28 706 |
| 29 3 29 735 |
| 30 3 30 765 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS <n> PRECEDING ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 175 |
| 9 1 29 182 |
| 10 1 30 189 |
| 11 2 21 186 |
| 12 2 22 183 |
| 13 2 23 180 |
| 14 2 24 177 |
| 15 2 25 174 |
| 16 2 26 171 |
| 17 2 27 168 |
| 18 2 28 175 |
| 19 2 29 182 |
| 20 2 30 189 |
| 21 3 21 186 |
| 22 3 22 183 |
| 23 3 23 180 |
| 24 3 24 177 |
| 25 3 25 174 |
| 26 3 26 171 |
| 27 3 27 168 |
| 28 3 28 175 |
| 29 3 29 182 |
| 30 3 30 189 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 22 |
| 3 1 23 23 |
| 4 1 24 24 |
| 5 1 25 25 |
| 6 1 26 26 |
| 7 1 27 27 |
| 8 1 28 28 |
| 9 1 29 29 |
| 10 1 30 30 |
| 11 2 21 21 |
| 12 2 22 22 |
| 13 2 23 23 |
| 14 2 24 24 |
| 15 2 25 25 |
| 16 2 26 26 |
| 17 2 27 27 |
| 18 2 28 28 |
| 19 2 29 29 |
| 20 2 30 30 |
| 21 3 21 21 |
| 22 3 22 22 |
| 23 3 23 23 |
| 24 3 24 24 |
| 25 3 25 25 |
| 26 3 26 26 |
| 27 3 27 27 |
| 28 3 28 28 |
| 29 3 29 29 |
| 30 3 30 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> PRECEDING ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 ? |
| 5 1 25 ? |
| 6 1 26 ? |
| 7 1 27 21 |
| 8 1 28 43 |
| 9 1 29 66 |
| 10 1 30 90 |
| 11 2 21 115 |
| 12 2 22 141 |
| 13 2 23 168 |
| 14 2 24 196 |
| 15 2 25 225 |
| 16 2 26 255 |
| 17 2 27 276 |
| 18 2 28 298 |
| 19 2 29 321 |
| 20 2 30 345 |
| 21 3 21 370 |
| 22 3 22 396 |
| 23 3 23 423 |
| 24 3 24 451 |
| 25 3 25 480 |
| 26 3 26 510 |
| 27 3 27 531 |
| 28 3 28 553 |
| 29 3 29 576 |
| 30 3 30 600 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 276 |
| 12 2 22 298 |
| 13 2 23 321 |
| 14 2 24 345 |
| 15 2 25 370 |
| 16 2 26 396 |
| 17 2 27 423 |
| 18 2 28 451 |
| 19 2 29 480 |
| 20 2 30 510 |
| 21 3 21 531 |
| 22 3 22 553 |
| 23 3 23 576 |
| 24 3 24 600 |
| 25 3 25 625 |
| 26 3 26 651 |
| 27 3 27 678 |
| 28 3 28 706 |
| 29 3 29 735 |
| 30 3 30 765 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> >= <m>) ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 PRECEDING AND 3 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 21 |
| 5 1 25 43 |
| 6 1 26 66 |
| 7 1 27 90 |
| 8 1 28 94 |
| 9 1 29 98 |
| 10 1 30 102 |
| 11 2 21 106 |
| 12 2 22 110 |
| 13 2 23 114 |
| 14 2 24 108 |
| 15 2 25 102 |
| 16 2 26 96 |
| 17 2 27 90 |
| 18 2 28 94 |
| 19 2 29 98 |
| 20 2 30 102 |
| 21 3 21 106 |
| 22 3 22 110 |
| 23 3 23 114 |
| 24 3 24 108 |
| 25 3 25 102 |
| 26 3 26 96 |
| 27 3 27 90 |
| 28 3 28 94 |
| 29 3 29 98 |
| 30 3 30 102 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> < <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 3 PRECEDING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 175 |
| 9 1 29 182 |
| 10 1 30 189 |
| 11 2 21 186 |
| 12 2 22 183 |
| 13 2 23 180 |
| 14 2 24 177 |
| 15 2 25 174 |
| 16 2 26 171 |
| 17 2 27 168 |
| 18 2 28 175 |
| 19 2 29 182 |
| 20 2 30 189 |
| 21 3 21 186 |
| 22 3 22 183 |
| 23 3 23 180 |
| 24 3 24 177 |
| 25 3 25 174 |
| 26 3 26 171 |
| 27 3 27 168 |
| 28 3 28 175 |
| 29 3 29 182 |
| 30 3 30 189 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 3 PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN CURRENT ROW AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND CURRENT ROW ===> Supported |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 22 |
| 3 1 23 23 |
| 4 1 24 24 |
| 5 1 25 25 |
| 6 1 26 26 |
| 7 1 27 27 |
| 8 1 28 28 |
| 9 1 29 29 |
| 10 1 30 30 |
| 11 2 21 21 |
| 12 2 22 22 |
| 13 2 23 23 |
| 14 2 24 24 |
| 15 2 25 25 |
| 16 2 26 26 |
| 17 2 27 27 |
| 18 2 28 28 |
| 19 2 29 29 |
| 20 2 30 30 |
| 21 3 21 21 |
| 22 3 22 22 |
| 23 3 23 23 |
| 24 3 24 24 |
| 25 3 25 25 |
| 26 3 26 26 |
| 27 3 27 27 |
| 28 3 28 28 |
| 29 3 29 29 |
| 30 3 30 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN CURRENT ROW AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 3 FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> <= <m>) ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 3 FOLLOWING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> > <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ORDER BY num ROWS BETWEEN 6 FOLLOWING AND 3 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--============= |
| >> |
| >>---NO PARTITIN BY & NO ORDER BY |
| >>----------ROWS UNBOUNDED PRECEDING ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS UNBOUNDED PRECEDING ) as olapsum |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS <n> PRECEDING ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS 6 PRECEDING ) as olapsum |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS CURRENT ROW ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS CURRENT ROW ) AS olapsum |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> PRECEDING ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND 6 PRECEDING ) AS olapsum |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS olapsum |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED PRECEDING AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 PRECEDING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> >= <m>) ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 PRECEDING AND 3 PRECEDING ) AS olapsum |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> PRECEDING (<n> < <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 3 PRECEDING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND CURRENT ROW ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> PRECEDING AND <m> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN 3 PRECEDING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN CURRENT ROW AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN CURRENT ROW AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND CURRENT ROW ===> Supported |
| >>SELECT count(*) |
| +>FROM ( |
| +>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) |
| +>FROM olap_emp ) T; |
| |
| (EXPR) |
| -------------------- |
| |
| 30 |
| |
| --- 1 row(s) selected. |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN CURRENT ROW AND <n> FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN CURRENT ROW AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED FOLLOWING AND UNBOUNDED FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>----------ROWS BETWEEN UNBOUNDED FOLLOWING AND <n> FOLLOWING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN UNBOUNDED FOLLOWING AND 6 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> PRECEDING ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 3 FOLLOWING AND 6 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND CURRENT ROW ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 FOLLOWING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND UNBOUNDED FOLLOWING ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> <= <m>) ===> Unsupported |
| >>--SELECT num, workgroupnum, annualsalary, |
| >>-- SUM(AnnualSalary ) OVER ( ROWS BETWEEN 3 FOLLOWING AND 6 FOLLOWING ) |
| >>--FROM olap_emp ; |
| >> |
| >>----------ROWS BETWEEN <n> FOLLOWING AND <m> FOLLOWING (<n> > <m>) ===> Illegal |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( ROWS BETWEEN 6 FOLLOWING AND 3 FOLLOWING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4342] The specified window frame clause is not valid. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>---************************************** History buffer************************************************ |
| >> |
| >> |
| >> |
| >>--CONTROL QUERY DEFAULT DEF_MAX_HISTORY_ROWS '10'; |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS 9 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >> |
| >> |
| >>--CONTROL QUERY DEFAULT DEF_MAX_HISTORY_ROWS '10'; |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND 9 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 ? |
| 5 1 25 ? |
| 6 1 26 ? |
| 7 1 27 ? |
| 8 1 28 ? |
| 9 1 29 ? |
| 10 1 30 21 |
| 11 2 21 ? |
| 12 2 22 ? |
| 13 2 23 ? |
| 14 2 24 ? |
| 15 2 25 ? |
| 16 2 26 ? |
| 17 2 27 ? |
| 18 2 28 ? |
| 19 2 29 ? |
| 20 2 30 21 |
| 21 3 21 ? |
| 22 3 22 ? |
| 23 3 23 ? |
| 24 3 24 ? |
| 25 3 25 ? |
| 26 3 26 ? |
| 27 3 27 ? |
| 28 3 28 ? |
| 29 3 29 ? |
| 30 3 30 21 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>--CONTROL QUERY DEFAULT DEF_MAX_HISTORY_ROWS '7'; |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 9 PRECEDING AND 8 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 ? |
| 5 1 25 ? |
| 6 1 26 ? |
| 7 1 27 ? |
| 8 1 28 ? |
| 9 1 29 21 |
| 10 1 30 43 |
| 11 2 21 ? |
| 12 2 22 ? |
| 13 2 23 ? |
| 14 2 24 ? |
| 15 2 25 ? |
| 16 2 26 ? |
| 17 2 27 ? |
| 18 2 28 ? |
| 19 2 29 21 |
| 20 2 30 43 |
| 21 3 21 ? |
| 22 3 22 ? |
| 23 3 23 ? |
| 24 3 24 ? |
| 25 3 25 ? |
| 26 3 26 ? |
| 27 3 27 ? |
| 28 3 28 ? |
| 29 3 29 21 |
| 30 3 30 43 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--CONTROL QUERY DEFAULT DEF_MAX_HISTORY_ROWS '7'; |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN 9 PRECEDING AND CURRENT ROW ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 21 |
| 2 1 22 43 |
| 3 1 23 66 |
| 4 1 24 90 |
| 5 1 25 115 |
| 6 1 26 141 |
| 7 1 27 168 |
| 8 1 28 196 |
| 9 1 29 225 |
| 10 1 30 255 |
| 11 2 21 21 |
| 12 2 22 43 |
| 13 2 23 66 |
| 14 2 24 90 |
| 15 2 25 115 |
| 16 2 26 141 |
| 17 2 27 168 |
| 18 2 28 196 |
| 19 2 29 225 |
| 20 2 30 255 |
| 21 3 21 21 |
| 22 3 22 43 |
| 23 3 23 66 |
| 24 3 24 90 |
| 25 3 25 115 |
| 26 3 26 141 |
| 27 3 27 168 |
| 28 3 28 196 |
| 29 3 29 225 |
| 30 3 30 255 |
| |
| --- 30 row(s) selected. |
| >> |
| >>---************************************** Window Size > smallint************************************************ |
| >> |
| >>--CONTROL QUERY DEFAULT DEF_MAX_HISTORY_ROWS '1024'; |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS BETWEEN UNBOUNDED PRECEDING AND 65535 PRECEDING ) |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) |
| ---------- ------------ ------------ -------------------- |
| |
| 1 1 21 ? |
| 2 1 22 ? |
| 3 1 23 ? |
| 4 1 24 ? |
| 5 1 25 ? |
| 6 1 26 ? |
| 7 1 27 ? |
| 8 1 28 ? |
| 9 1 29 ? |
| 10 1 30 ? |
| 11 2 21 ? |
| 12 2 22 ? |
| 13 2 23 ? |
| 14 2 24 ? |
| 15 2 25 ? |
| 16 2 26 ? |
| 17 2 27 ? |
| 18 2 28 ? |
| 19 2 29 ? |
| 20 2 30 ? |
| 21 3 21 ? |
| 22 3 22 ? |
| 23 3 23 ? |
| 24 3 24 ? |
| 25 3 25 ? |
| 26 3 26 ? |
| 27 3 27 ? |
| 28 3 28 ? |
| 29 3 29 ? |
| 30 3 30 ? |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >> |
| >>--**************************************olap functions in diffrent scopes***************************** |
| >>SELECT * |
| +>FROM ( SELECT num, SUM(AnnualSalary) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) sumA FROM olap_emp) A, |
| +> ( SELECT num, AVG(AnnualSalary) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) avgB FROM olap_emp) B |
| +>WHERE A.num=b.num |
| +>order by 1,2,3,4; |
| |
| NUM SUMA NUM AVGB |
| ---------- -------------------- ---------- -------------------- |
| |
| 1 21 1 21 |
| 2 43 2 21 |
| 3 66 3 22 |
| 4 90 4 22 |
| 5 115 5 23 |
| 6 141 6 23 |
| 7 168 7 24 |
| 8 196 8 24 |
| 9 225 9 25 |
| 10 255 10 25 |
| 11 21 11 21 |
| 12 43 12 21 |
| 13 66 13 22 |
| 14 90 14 22 |
| 15 115 15 23 |
| 16 141 16 23 |
| 17 168 17 24 |
| 18 196 18 24 |
| 19 225 19 25 |
| 20 255 20 25 |
| 21 21 21 21 |
| 22 43 22 21 |
| 23 66 23 22 |
| 24 90 24 22 |
| 25 115 25 23 |
| 26 141 26 23 |
| 27 168 27 24 |
| 28 196 28 24 |
| 29 225 29 25 |
| 30 255 30 25 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>SELECT * |
| +>FROM ( SELECT num, SUM(AnnualSalary) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) sumA FROM olap_emp) A, |
| +> ( SELECT num, AVG(AnnualSalary) OVER ( PARTITION BY workgroupnum ORDER BY paygrade,num ROWS UNBOUNDED PRECEDING ) avgB FROM olap_emp) B |
| +>WHERE A.num=b.num |
| +>order by 1,2,3,4; |
| |
| NUM SUMA NUM AVGB |
| ---------- -------------------- ---------- -------------------- |
| |
| 1 21 1 21 |
| 2 43 2 21 |
| 3 66 3 22 |
| 4 90 4 22 |
| 5 115 5 23 |
| 6 141 6 23 |
| 7 168 7 24 |
| 8 196 8 24 |
| 9 225 9 25 |
| 10 255 10 25 |
| 11 21 11 21 |
| 12 43 12 21 |
| 13 66 13 22 |
| 14 90 14 22 |
| 15 115 15 23 |
| 16 141 16 23 |
| 17 168 17 24 |
| 18 196 18 24 |
| 19 225 19 25 |
| 20 255 20 25 |
| 21 21 21 21 |
| 22 43 22 21 |
| 23 66 23 22 |
| 24 90 24 22 |
| 25 115 25 23 |
| 26 141 26 23 |
| 27 168 27 24 |
| 28 196 28 24 |
| 29 225 29 25 |
| 30 255 30 25 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) |
| +> |
| +>FROM olap_emp ; |
| |
| NUM WORKGROUPNUM ANNUALSALARY (EXPR) (EXPR) |
| ---------- ------------ ------------ -------------------- -------------------- |
| |
| 1 1 21 21 21 |
| 2 1 22 43 21 |
| 3 1 23 66 22 |
| 4 1 24 90 22 |
| 5 1 25 115 23 |
| 6 1 26 141 23 |
| 7 1 27 168 24 |
| 8 1 28 196 24 |
| 9 1 29 225 25 |
| 10 1 30 255 25 |
| 11 2 21 21 21 |
| 12 2 22 43 21 |
| 13 2 23 66 22 |
| 14 2 24 90 22 |
| 15 2 25 115 23 |
| 16 2 26 141 23 |
| 17 2 27 168 24 |
| 18 2 28 196 24 |
| 19 2 29 225 25 |
| 20 2 30 255 25 |
| 21 3 21 21 21 |
| 22 3 22 43 21 |
| 23 3 23 66 22 |
| 24 3 24 90 22 |
| 25 3 25 115 23 |
| 26 3 26 141 23 |
| 27 3 27 168 24 |
| 28 3 28 196 24 |
| 29 3 29 225 25 |
| 30 3 30 255 25 |
| |
| --- 30 row(s) selected. |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY paygrade,num ROWS UNBOUNDED PRECEDING ) |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary ) OVER ( PARTITION BY workgroupnum ORDER BY paygrade,num ROWS UNBOUNDED PRECEDING ) |
| +> |
| +>FROM olap_emp ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>--**************************************cancel rank***************************** |
| >>SELECT * FROM |
| +>(select rank() over (order by num) r from olap_emp) T |
| +>WHERE r > 10; |
| |
| R |
| -------------------- |
| |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| |
| --- 20 row(s) selected. |
| >> |
| >>SELECT * FROM |
| +>(select rank() over (order by num) r from olap_emp) T |
| +>WHERE r >=10; |
| |
| R |
| -------------------- |
| |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| |
| --- 21 row(s) selected. |
| >> |
| >> |
| >> |
| >> |
| >>SELECT * FROM |
| +>(select rank() over (order by num) r from olap_emp) T |
| +>WHERE r < 10; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| |
| --- 9 row(s) selected. |
| >> |
| >>SELECT * FROM |
| +>(select rank() over (order by num) r from olap_emp) T |
| +>WHERE r <=10; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| |
| --- 10 row(s) selected. |
| >> |
| >> |
| >> |
| >> |
| >>SELECT * FROM |
| +>(select rank() over (order by num) r from olap_emp) T |
| +>WHERE r <= 10 or r>= 20; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| |
| --- 21 row(s) selected. |
| >> |
| >> |
| >> |
| >> |
| >>SELECT * FROM |
| +>(select rank() over (order by num) r from olap_emp) T |
| +>WHERE r <= 10 or r<= 5; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| |
| --- 10 row(s) selected. |
| >> |
| >> |
| >> |
| >>SELECT * FROM |
| +>(select num,rank() over (order by num) r from olap_emp) T |
| +>WHERE r <= 10 or num >20; |
| |
| NUM R |
| ---------- -------------------- |
| |
| 1 1 |
| 2 2 |
| 3 3 |
| 4 4 |
| 5 5 |
| 6 6 |
| 7 7 |
| 8 8 |
| 9 9 |
| 10 10 |
| 21 21 |
| 22 22 |
| 23 23 |
| 24 24 |
| 25 25 |
| 26 26 |
| 27 27 |
| 28 28 |
| 29 29 |
| 30 30 |
| |
| --- 20 row(s) selected. |
| >> |
| >> |
| >> |
| >>SELECT * FROM |
| +>(select num,rank() over (order by num) r from olap_emp) T |
| +>WHERE r not in (select rank() over (order by num) r from olap_emp where num >12); |
| |
| NUM R |
| ---------- -------------------- |
| |
| 19 19 |
| 20 20 |
| 21 21 |
| 22 22 |
| 23 23 |
| 24 24 |
| 25 25 |
| 26 26 |
| 27 27 |
| 28 28 |
| 29 29 |
| 30 30 |
| |
| --- 12 row(s) selected. |
| >> |
| >>--**************************************rank over 2 or more solumns************************** |
| >> |
| >>select rank() over (order by paygrade,num) from olap_emp; |
| |
| (EXPR) |
| -------------------- |
| |
| 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 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select rank() over (order by paygrade,workgroupnum,num) from olap_emp; |
| |
| (EXPR) |
| -------------------- |
| |
| 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 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select paygrade,workgroupnum,num,rank() over (order by paygrade,workgroupnum,num) from olap_emp; |
| |
| PAYGRADE WORKGROUPNUM NUM (EXPR) |
| ---------- ------------ ---------- -------------------- |
| |
| 1 1 1 1 |
| 1 2 11 2 |
| 1 3 21 3 |
| 2 1 2 4 |
| 2 2 12 5 |
| 2 3 22 6 |
| 3 1 3 7 |
| 3 2 13 8 |
| 3 3 23 9 |
| 4 1 4 10 |
| 4 2 14 11 |
| 4 3 24 12 |
| 5 1 5 13 |
| 5 2 15 14 |
| 5 3 25 15 |
| 6 1 6 16 |
| 6 2 16 17 |
| 6 3 26 18 |
| 7 1 7 19 |
| 7 2 17 20 |
| 7 3 27 21 |
| 8 1 8 22 |
| 8 2 18 23 |
| 8 3 28 24 |
| 9 1 9 25 |
| 9 2 19 26 |
| 9 3 29 27 |
| 10 1 10 28 |
| 10 2 20 29 |
| 10 3 30 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--**************************************rank with delete/update***************************** |
| >>delete from olap_emp where rank() over (order by paygrade,num) =1; |
| |
| *** ERROR[15001] A syntax error occurred at or before: |
| delete from olap_emp where rank() over (order by paygrade,num) =1; |
| ^ (62 characters from start of SQL statement) |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>update emp set paygrade = rank() over (order by paygrade,num); |
| |
| *** ERROR[15001] A syntax error occurred at or before: |
| update emp set paygrade = rank() over (order by paygrade,num); |
| ^ (61 characters from start of SQL statement) |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- *****************************test moving rank transformation***************************** |
| >>-- rank() over (partition by a order by b) ==> (rows since changed (a) - rows since changed (a,b) |
| >> |
| >>SELECT workgroupnum,paygrade, sum_annualsalary,Rank() over (partition by workgroupnum order by sum_annualsalary) TD_RANK |
| +>FROM (SELECT workgroupnum,paygrade, SUM(annualsalary) sum_annualsalary FROM olap_emp GROUP BY workgroupnum,paygrade) T |
| +>ORDER BY 2 DESC, 1; |
| |
| WORKGROUPNUM PAYGRADE SUM_ANNUALSALARY TD_RANK |
| ------------ ---------- -------------------- -------------------- |
| |
| 1 10 30 10 |
| 2 10 30 10 |
| 3 10 30 10 |
| 1 9 29 9 |
| 2 9 29 9 |
| 3 9 29 9 |
| 1 8 28 8 |
| 2 8 28 8 |
| 3 8 28 8 |
| 1 7 27 7 |
| 2 7 27 7 |
| 3 7 27 7 |
| 1 6 26 6 |
| 2 6 26 6 |
| 3 6 26 6 |
| 1 5 25 5 |
| 2 5 25 5 |
| 3 5 25 5 |
| 1 4 24 4 |
| 2 4 24 4 |
| 3 4 24 4 |
| 1 3 23 3 |
| 2 3 23 3 |
| 3 3 23 3 |
| 1 2 22 2 |
| 2 2 22 2 |
| 3 2 22 2 |
| 1 1 21 1 |
| 2 1 21 1 |
| 3 1 21 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--control query default DEF_MAX_HISTORY_ROWS '5'; |
| >> |
| >>select sex,paygrade, rank() over (partition by sex order by paygrade) r from olap_emp; |
| |
| SEX PAYGRADE R |
| --- ---------- -------------------- |
| |
| F 2 1 |
| F 2 1 |
| F 2 1 |
| F 4 4 |
| F 4 4 |
| F 4 4 |
| F 6 7 |
| F 6 7 |
| F 6 7 |
| F 8 10 |
| F 8 10 |
| F 8 10 |
| F 10 13 |
| F 10 13 |
| F 10 13 |
| M 1 1 |
| M 1 1 |
| M 1 1 |
| M 3 4 |
| M 3 4 |
| M 3 4 |
| M 5 7 |
| M 5 7 |
| M 5 7 |
| M 7 10 |
| M 7 10 |
| M 7 10 |
| M 9 13 |
| M 9 13 |
| M 9 13 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select rank() over (partition by sex,lastname order by paygrade) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 4 |
| 4 |
| 4 |
| 7 |
| 7 |
| 7 |
| 10 |
| 10 |
| 10 |
| 13 |
| 13 |
| 13 |
| 1 |
| 1 |
| 1 |
| 4 |
| 4 |
| 4 |
| 7 |
| 7 |
| 7 |
| 10 |
| 10 |
| 10 |
| 13 |
| 13 |
| 13 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select rank() over (partition by sex order by paygrade,num) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select rank() over (partition by sex,lastname order by paygrade,num) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select rank() over (partition by sex order by lastname,paygrade,num) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select rank() over (partition by dateofbirth,sex order by lastname,paygrade,num) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>select rank() over (partition by sex,lastname,left(firstname,2),middleinitial order by paygrade) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 2 |
| 1 |
| 2 |
| 1 |
| 1 |
| 3 |
| 4 |
| 4 |
| 1 |
| 2 |
| 3 |
| 1 |
| 1 |
| 2 |
| 1 |
| 1 |
| 2 |
| 3 |
| 1 |
| 1 |
| 3 |
| 1 |
| 2 |
| 3 |
| 1 |
| 1 |
| 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>select rank() over (partition by sex,lastname,middleinitial order by paygrade,num) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>select rank() over (partition by sex,lastname,left(firstname,2),middleinitial order by paygrade,workgroupnum,num) r from olap_emp; |
| |
| R |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 2 |
| 1 |
| 2 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 1 |
| 2 |
| 3 |
| 1 |
| 1 |
| 2 |
| 1 |
| 1 |
| 2 |
| 3 |
| 1 |
| 2 |
| 3 |
| 1 |
| 2 |
| 3 |
| 1 |
| 1 |
| 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--control query default DEF_MAX_HISTORY_ROWS reset; |
| >> |
| >>--***************************** test partition by /order by with rank/dense_rank***************************** |
| >> |
| >>select rank() over (partition by sex ) from olap_emp; |
| |
| *** ERROR[4344] Use of RANK or DENSE_RANK window functions without a window ORDER BY clause is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>select dense_rank() over (partition by sex ) from olap_emp; |
| |
| *** ERROR[4344] Use of RANK or DENSE_RANK window functions without a window ORDER BY clause is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>select rank() over ( order by sex ) from olap_emp; |
| |
| (EXPR) |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select dense_rank() over ( order by sex ) from olap_emp; |
| |
| (EXPR) |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>select rank() over ( ) from olap_emp; |
| |
| *** ERROR[4344] Use of RANK or DENSE_RANK window functions without a window ORDER BY clause is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>select dense_rank() over ( ) from olap_emp; |
| |
| *** ERROR[4344] Use of RANK or DENSE_RANK window functions without a window ORDER BY clause is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--***************************** test expressions in order by ***************************** |
| >>prepare stat1 from |
| +>select case when workgroupnum=1 then 'x' when workgroupnum=2 then 'y' else 'z' end trans_count_expr, sex, |
| +> rank() over (order by case when workgroupnum=1 then 'x' when workgroupnum=2 then 'y' else 'z' end, sex) olap_rank |
| +>from olap_emp; |
| |
| --- SQL command prepared. |
| >>-- result should match previous statement result |
| >>prepare stat2 from |
| +>select case when workgroupnum=1 then 'x' when workgroupnum=2 then 'y' else 'z' end trans_count_expr, sex, |
| +> rank() over (order by trans_count_expr, sex) olap_rank |
| +>from (select workgroupnum,sex,case when workgroupnum=1 then 'x' when workgroupnum=2 then 'y' else 'z' end trans_count_expr from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select -1 * annualsalary neg_total, rank() over (order by -1 * annualsalary) olap_rank from olap_emp; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select -1 * annualsalary neg_total, rank() over (order by neg_total2) olap_rank from |
| +>(select annualsalary, -1 * annualsalary neg_total2 from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select annualsalary/paygrade as A, rank() over(order by annualsalary/paygrade) olap_rank from olap_emp; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select annualsalary/paygrade as A, rank() over(order by B) olap_rank from |
| +>(select annualsalary,paygrade, annualsalary/paygrade B from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select annualsalary/cast(paygrade as DECIMAL(9,2)) as A, rank() over (order by annualsalary/cast(paygrade as DECIMAL(9,2))) olap_rank from olap_emp; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select annualsalary/cast(paygrade as DECIMAL(9,2)) as A, rank() over (order by B) olap_rank from |
| +>(select annualsalary, paygrade, annualsalary/cast(paygrade as DECIMAL(9,2)) B from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select paygrade, rank() over (order by paygrade +10) olap_rank from olap_emp; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select paygrade, rank() over (order by pay_total) olap_rank from |
| +>(select paygrade, paygrade+10 pay_total from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select paygrade, rank() over (order by paygrade -10) olap_rank from olap_emp; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select paygrade, rank() over (order by pay_total) olap_rank from |
| +>(select paygrade, paygrade-10 pay_total from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>-- aggregates in order by |
| >>prepare stat1 from |
| +>select num, rank() over (order by sum(annualsalary)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by sum_a) olap_rank from |
| +> (select num,sum(annualsalary) sum_a from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, rank() over (order by avg(annualsalary)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by avg_a) olap_rank from |
| +> (select num,avg(annualsalary) avg_a from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, rank() over (order by min(annualsalary)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by min_a) olap_rank from |
| +> (select num,min(annualsalary) min_a from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, rank() over (order by max(annualsalary)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by max_a) olap_rank from |
| +> (select num,max(annualsalary) max_a from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, rank() over (order by variance(annualsalary)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by variance_a) olap_rank from |
| +> (select num,variance(annualsalary) variance_a from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, rank() over (order by stddev(annualsalary)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by stddev_a) olap_rank from |
| +> (select num,stddev(annualsalary) stddev_a from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, rank() over (order by count(*)) olap_rank from olap_emp group by num order by num; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select num, rank() over (order by cnt) olap_rank from |
| +> (select num,count(*) cnt from olap_emp group by num) T order by num; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>--***************************** multiple olap functions w/ same expression in order by ***************************** |
| >>prepare stat1 from |
| +>select num, workgroupnum, |
| +> rank() over (order by sum(annualsalary)*num) olap_rank, |
| +> dense_rank() over (order by sum(annualsalary)*num) olap_drank, |
| +> row_number() over (order by sum(annualsalary)*num) olap_rnum |
| +>from olap_emp |
| +>group by num, workgroupnum, annualsalary |
| +>order by num, workgroupnum; |
| |
| --- SQL command prepared. |
| >> |
| >>prepare stat2 from |
| +>select num, workgroupnum, |
| +> rank() over (order by suma_num) olap_rank, |
| +> dense_rank() over (order by suma_num) olap_drank, |
| +> row_number() over (order by suma_num) olap_rnum |
| +>from |
| +> (select num,workgroupnum, annualsalary, |
| +> sum(annualsalary)*num suma_num |
| +> from olap_emp |
| +> group by num, workgroupnum, annualsalary) T |
| +> order by num, workgroupnum; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>prepare stat1 from |
| +>select num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) , |
| +> MIN(AnnualSalary) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) , |
| +> MAX(AnnualSalary) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) , |
| +> VARIANCE(AnnualSalary) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) , |
| +> STDDEV(AnnualSalary) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) , |
| +> COUNT(*) OVER (order by sum(annualsalary)*num ROWS UNBOUNDED PRECEDING ) |
| +>from olap_emp |
| +>group by num, workgroupnum, annualsalary |
| +>order by num, workgroupnum; |
| |
| --- SQL command prepared. |
| >> |
| >>prepare stat2 from |
| +>select num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) , |
| +> MIN(AnnualSalary) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) , |
| +> MAX(AnnualSalary) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) , |
| +> VARIANCE(AnnualSalary) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) , |
| +> STDDEV(AnnualSalary) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) , |
| +> COUNT(*) OVER (order by suma_num ROWS UNBOUNDED PRECEDING ) |
| +>from |
| +> (select num, workgroupnum, annualsalary, |
| +> sum(annualsalary)*num suma_num |
| +> from olap_emp |
| +> group by num,workgroupnum,annualsalary) T |
| +> order by num, workgroupnum; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>--************************** multiple olap functions w/ different expression in order by ************************** |
| >>select num, workgroupnum, |
| +> rank() over (order by sum(annualsalary)) olap_rank, |
| +> dense_rank() over (order by avg(annualsalary)) olap_drank, |
| +> row_number() over (order by sum(annualsalary)) olap_rnum |
| +>from olap_emp group by num, workgroupnum, annualsalary; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>select num, workgroupnum, |
| +> rank() over (order by sum_a) olap_rank, |
| +> dense_rank() over (order by avg_a) olap_drank, |
| +> row_number() over (order by sum_a) olap_rnum |
| +>from |
| +> (select num,workgroupnum, annualsalary, |
| +> sum(annualsalary) sum_a, |
| +> avg(annualsalary) avg_a |
| +> from olap_emp |
| +> group by num, workgroupnum, annualsalary) T ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>select num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary) OVER (order by sum(annualsalary) ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary) OVER (order by avg(annualsalary) ROWS UNBOUNDED PRECEDING ) , |
| +> MIN(AnnualSalary) OVER (order by min(annualsalary) ROWS UNBOUNDED PRECEDING ) , |
| +> MAX(AnnualSalary) OVER (order by max(annualsalary) ROWS UNBOUNDED PRECEDING ) , |
| +> VARIANCE(AnnualSalary) OVER (order by variance(annualsalary) ROWS UNBOUNDED PRECEDING ) , |
| +> STDDEV(AnnualSalary) OVER (order by stddev(annualsalary) ROWS UNBOUNDED PRECEDING ) , |
| +> COUNT(*) OVER (order by count(*) ROWS UNBOUNDED PRECEDING ) |
| +>from olap_emp group by num, workgroupnum, annualsalary; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>select num, workgroupnum, annualsalary, |
| +> SUM(AnnualSalary) OVER (order by sum_a ROWS UNBOUNDED PRECEDING ) , |
| +> AVG(AnnualSalary) OVER (order by avg_a ROWS UNBOUNDED PRECEDING ) , |
| +> MIN(AnnualSalary) OVER (order by min_a ROWS UNBOUNDED PRECEDING ) , |
| +> MAX(AnnualSalary) OVER (order by max_a ROWS UNBOUNDED PRECEDING ) , |
| +> VARIANCE(AnnualSalary) OVER (order by var_a ROWS UNBOUNDED PRECEDING ) , |
| +> STDDEV(AnnualSalary) OVER (order by stddev_a ROWS UNBOUNDED PRECEDING ) , |
| +> COUNT(*) OVER (order by cnt ROWS UNBOUNDED PRECEDING ) |
| +>from |
| +>(select num,workgroupnum, annualsalary, |
| +> sum(annualsalary) sum_a, |
| +> avg(annualsalary) avg_a, |
| +> min(annualsalary) min_a, |
| +> max(annualsalary) max_a, |
| +> variance(annualsalary) var_a, |
| +> stddev(annualsalary) stddev_a, |
| +> count(*) cnt from olap_emp group by num, workgroupnum, annualsalary) T ; |
| |
| *** ERROR[4340] All Window Functions within a query must have the same window partition clause and window order clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--***************************** strings in order by ***************************** |
| >>prepare stat1 from |
| +>select substring(firstname, 1 ,4) sub_firstname, rank() over (order by substring(firstname, 1 ,4)) as olap_rank |
| +>from olap_emp; |
| |
| --- SQL command prepared. |
| >>prepare stat2 from |
| +>select substring(firstname, 1 ,4) sub_firstname, rank() over (order by sub_firstname2) as olap_rank |
| +>from |
| +> (select firstname,substring(firstname,1,4) sub_firstname2 from olap_emp) T; |
| |
| --- SQL command prepared. |
| >>log; |
| 1,2c1,2 |
| < >> log TEMP1; |
| < >> execute stat1; |
| --- |
| > >> log TEMP2; |
| > >> execute stat2; |
| >> |
| >>--***************************** olap with qualify (not allowed) ***************************** |
| >>select workgroupnum, sex,rank() over(order by workgroupnum, sex) olap_rank |
| +> from olap_emp qualify workgroupnum> 1 and rank() over(order by workgroupnum, sex)<200; |
| |
| *** ERROR[15001] A syntax error occurred at or before: |
| select workgroupnum, sex,rank() over(order by workgroupnum, sex) olap_rank fr |
| om olap_emp qualify workgroupnum> 1 and rank() over(order by workgroupnum, sex) |
| ^ (111 characters from start of SQL statement) |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>log; |
| >> |
| >> |
| >> |
| >>create table TDemployee |
| +> ( |
| +> Num integer unsigned no default not null not droppable , |
| +> LastName char(24) no default not null not droppable , |
| +> FirstName char(14) no default not null not droppable , |
| +> MiddleInitial char no default not null not droppable , |
| +> Sex char no default not null not droppable , |
| +> WorkGroupNum integer unsigned no default not null not droppable , |
| +> PayGrade integer unsigned no default not null not droppable , |
| +> AnnualSalary integer unsigned no default not null not droppable , |
| +> DateOfBirth date no default not null not droppable , |
| +> primary key ( Num ) not droppable |
| +> ) |
| +> store by primary key; |
| |
| --- SQL operation complete. |
| >> |
| >>insert into TDemployee values |
| +>(1,'Anderson','Alvin','A','M',1,1,21000,DATE '01/07/1941'), |
| +>(2,'Anderson','Anna ','A','F',1,2,22000,DATE '02/07/1941'), |
| +>(3,'Anderson','Aloysius','A','M',1,3,23000,DATE '03/07/1941'), |
| +>(4, 'Anderson','Abby ','A','F',1,4,24000 ,DATE '04/07/1941'), |
| +>(5,'Anderson','Alan ','A','M',1,5,25000, DATE '05/07/1941'), |
| +>(6,'Anderson','Anne ','A','F',1,6,26000,DATE '06/07/1941'), |
| +>(7,'Anderson','Abelard','A','M',1,7,27000,DATE '07/07/1941'), |
| +>(8,'Anderson','Alice','A','F',1,8,28000,DATE '08/07/1941'), |
| +>(9,'Anderson','Anton','A','M',1,9,29000,DATE '09/07/1941'), |
| +>(10,'Anderson','Alicia ','A','F',1,10,30000,DATE '10/07/1941'), |
| +>(11,'Anderson','Abe','A','M',2,1,21000,DATE '11/07/1941'), |
| +>(12,'Anderson','Amanda ','A','F',2,2,22000,DATE '12/07/1941'), |
| +>(13,'Anderson','Andrew ','A','M',2,3,23000,DATE '01/07/1941'), |
| +>(14,'Anderson','Annette','A','F',2,4,24000,DATE '02/07/1941'), |
| +>(15,'Anderson','Akihiro','A','M',2,5,25000,DATE '03/07/1941'), |
| +>(16,'Anderson','Andrea ','A','F',2,6,26000,DATE '04/07/1941'), |
| +>(17,'Anderson','Arthur ','A','M',2,7,27000,DATE '05/07/1941'), |
| +>(18,'Anderson','Amy ','A','F',2,8,28000,DATE '06/07/1941'), |
| +>(19,'Anderson','Arnold ','A','M',2,9,29000,DATE '07/07/1941'), |
| +>(20,'Anderson','Adriana','A','F',2,10,30000,DATE '08/07/1941'), |
| +>(21,'Anderson','Arturo ','A','M',3,1,21000,DATE '09/07/1941'), |
| +>(22,'Anderson','Annabelle','A','F',3,2,22000,DATE '10/07/1941'), |
| +>(23,'Anderson','Andreas','A','M',3,3,23000,DATE '11/07/1941'), |
| +>(24,'Anderson','Becky','A','F',3,4,24000,DATE '12/07/1941'), |
| +>(25,'Anderson','Bill ','A','M',3,5,25000,DATE '01/08/1941'), |
| +>(26,'Anderson','Betsy','A','F',3,6,26000,DATE '02/08/1941'), |
| +>(27,'Anderson','Bob ','A','M',3,7,27000,DATE '03/08/1941'), |
| +>(28,'Anderson','Belinda','A','F',3,8,28000,DATE '04/08/1941'), |
| +>(29,'Anderson','Bruce','A','M',3,9,29000,DATE '12/08/1941'), |
| +>(30,'Anderson','Bridget','A','F',3,10,30000,DATE '06/08/1941'); |
| |
| --- 30 row(s) inserted. |
| >> |
| >> |
| >> |
| >> |
| >>CONTROL QUERY DEFAULT COMP_BOOL_200 'ON'; |
| |
| --- SQL operation complete. |
| >> |
| >> |
| >> |
| >>-- SEQUENCE FUNCTIONS -- |
| >> |
| >>SELECT num , |
| +> annualsalary, |
| +> RUNNINGSUM(annualsalary), |
| +> RUNNINGAVG(annualsalary), |
| +> RUNNINGMIN(annualsalary), |
| +> RUNNINGMAX(annualsalary), |
| +> RUNNINGSTDDEV(annualsalary), |
| +> RUNNINGVARIANCE(annualsalary) |
| +>FROM |
| +> TDemployee |
| +>SEQUENCE BY |
| +> num; |
| |
| NUM ANNUALSALARY (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- ---------- ---------- ------------------------- ------------------------- |
| |
| 1 21000 21000 21000 21000 21000 0.00000000000000000E+000 0.00000000000000000E+000 |
| 2 22000 43000 21500 21000 22000 7.07106781186547584E+002 5.00000000000000000E+005 |
| 3 23000 66000 22000 21000 23000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 4 24000 90000 22500 21000 24000 1.29099444873580576E+003 1.66666666666666688E+006 |
| 5 25000 115000 23000 21000 25000 1.58113883008418976E+003 2.50000000000000000E+006 |
| 6 26000 141000 23500 21000 26000 1.87082869338697056E+003 3.50000000000000000E+006 |
| 7 27000 168000 24000 21000 27000 2.16024689946928704E+003 4.66666666666666688E+006 |
| 8 28000 196000 24500 21000 28000 2.44948974278317792E+003 6.00000000000000000E+006 |
| 9 29000 225000 25000 21000 29000 2.73861278752583072E+003 7.50000000000000000E+006 |
| 10 30000 255000 25500 21000 30000 3.02765035409749120E+003 9.16666666666666624E+006 |
| 11 21000 276000 25090 21000 30000 3.17661912902839232E+003 1.00909090909090992E+007 |
| 12 22000 298000 24833 21000 30000 3.15748269507482752E+003 9.96969696969699712E+006 |
| 13 23000 321000 24692 21000 30000 3.06552375581007424E+003 9.39743589743590272E+006 |
| 14 24000 345000 24642 21000 30000 2.95106611393089920E+003 8.70879120879121920E+006 |
| 15 25000 370000 24666 21000 30000 2.84521318976944256E+003 8.09523809523800448E+006 |
| 16 26000 396000 24750 21000 30000 2.76887462097269184E+003 7.66666666666666752E+006 |
| 17 27000 423000 24882 21000 30000 2.73592655560178592E+003 7.48529411764705152E+006 |
| 18 28000 451000 25055 21000 30000 2.75408193782636960E+003 7.58496732026145024E+006 |
| 19 29000 480000 25263 21000 30000 2.82532407704866176E+003 7.98245614035087104E+006 |
| 20 30000 510000 25500 21000 30000 2.94689845877250880E+003 8.68421052631578880E+006 |
| 21 21000 531000 25285 21000 30000 3.03550419441081664E+003 9.21428571428566016E+006 |
| 22 22000 553000 25136 21000 30000 3.04404890996084480E+003 9.26623376623380736E+006 |
| 23 23000 576000 25043 21000 30000 3.00723764622446080E+003 9.04347826086963328E+006 |
| 24 24000 600000 25000 21000 30000 2.94883912309794304E+003 8.69565217391304320E+006 |
| 25 25000 625000 25000 21000 30000 2.88675134594812864E+003 8.33333333333333248E+006 |
| 26 26000 651000 25038 21000 30000 2.83521807599724704E+003 8.03846153846153088E+006 |
| 27 27000 678000 25111 21000 30000 2.80567191093237472E+003 7.87179487179491968E+006 |
| 28 28000 706000 25214 21000 30000 2.80683217850781376E+003 7.87830687830691840E+006 |
| 29 29000 735000 25344 21000 30000 2.84449169535193696E+003 8.09113300492613760E+006 |
| 30 30000 765000 25500 21000 30000 2.92138370616060800E+003 8.53448275862068992E+006 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT num , |
| +> annualsalary, |
| +> MOVINGSUM(annualsalary,3), |
| +> MOVINGAVG(annualsalary,3), |
| +> MOVINGMIN(annualsalary,3), |
| +> MOVINGMAX(annualsalary,3), |
| +> MOVINGSTDDEV(annualsalary,3), |
| +> MOVINGVARIANCE(annualsalary,3) |
| +>FROM |
| +> TDemployee |
| +>SEQUENCE BY |
| +> num; |
| |
| NUM ANNUALSALARY (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) (EXPR) |
| ---------- ------------ -------------------- -------------------- ---------- ---------- ------------------------- ------------------------- |
| |
| 1 21000 21000 21000 21000 21000 0.00000000000000000E+000 0.00000000000000000E+000 |
| 2 22000 43000 21500 21000 22000 7.07106781186547584E+002 5.00000000000000000E+005 |
| 3 23000 66000 22000 21000 23000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 4 24000 69000 23000 22000 24000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 5 25000 72000 24000 23000 25000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 6 26000 75000 25000 24000 26000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 7 27000 78000 26000 25000 27000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 8 28000 81000 27000 26000 28000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 9 29000 84000 28000 27000 29000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 10 30000 87000 29000 28000 30000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 11 21000 80000 26666 21000 30000 4.93288286231623936E+003 2.43333333333332512E+007 |
| 12 22000 73000 24333 21000 30000 4.93288286231625152E+003 2.43333333333333728E+007 |
| 13 23000 66000 22000 21000 23000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 14 24000 69000 23000 22000 24000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 15 25000 72000 24000 23000 25000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 16 26000 75000 25000 24000 26000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 17 27000 78000 26000 25000 27000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 18 28000 81000 27000 26000 28000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 19 29000 84000 28000 27000 29000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 20 30000 87000 29000 28000 30000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 21 21000 80000 26666 21000 30000 4.93288286231623936E+003 2.43333333333332512E+007 |
| 22 22000 73000 24333 21000 30000 4.93288286231625152E+003 2.43333333333333728E+007 |
| 23 23000 66000 22000 21000 23000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 24 24000 69000 23000 22000 24000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 25 25000 72000 24000 23000 25000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 26 26000 75000 25000 24000 26000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 27 27000 78000 26000 25000 27000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 28 28000 81000 27000 26000 28000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 29 29000 84000 28000 27000 29000 1.00000000000000000E+003 1.00000000000000000E+006 |
| 30 30000 87000 29000 28000 30000 1.00000000000000000E+003 1.00000000000000000E+006 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT |
| +> annualsalary, |
| +> RUNNINGCOUNT(1), |
| +> ROWS SINCE CHANGED (paygrade) , |
| +> RUNNINGCOUNT(1)-ROWS SINCE CHANGED (paygrade) + 1, |
| +> RANK(paygrade) |
| +>FROM |
| +> TDemployee |
| +>SEQUENCE BY |
| +> paygrade; |
| |
| ANNUALSALARY (EXPR) (EXPR) (EXPR) (EXPR) |
| ------------ -------------------- -------------------- -------------------- -------------------- |
| |
| 21000 1 1 1 1 |
| 21000 2 2 1 1 |
| 21000 3 3 1 1 |
| 22000 4 1 4 4 |
| 22000 5 2 4 4 |
| 22000 6 3 4 4 |
| 23000 7 1 7 7 |
| 23000 8 2 7 7 |
| 23000 9 3 7 7 |
| 24000 10 1 10 10 |
| 24000 11 2 10 10 |
| 24000 12 3 10 10 |
| 25000 13 1 13 13 |
| 25000 14 2 13 13 |
| 25000 15 3 13 13 |
| 26000 16 1 16 16 |
| 26000 17 2 16 16 |
| 26000 18 3 16 16 |
| 27000 19 1 19 19 |
| 27000 20 2 19 19 |
| 27000 21 3 19 19 |
| 28000 22 1 22 22 |
| 28000 23 2 22 22 |
| 28000 24 3 22 22 |
| 29000 25 1 25 25 |
| 29000 26 2 25 25 |
| 29000 27 3 25 25 |
| 30000 28 1 28 28 |
| 30000 29 2 28 28 |
| 30000 30 3 28 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >> |
| >>SELECT RANK(paygrade) FROM TDemployee SEQUENCE BY paygrade; |
| |
| (EXPR) |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 4 |
| 4 |
| 4 |
| 7 |
| 7 |
| 7 |
| 10 |
| 10 |
| 10 |
| 13 |
| 13 |
| 13 |
| 16 |
| 16 |
| 16 |
| 19 |
| 19 |
| 19 |
| 22 |
| 22 |
| 22 |
| 25 |
| 25 |
| 25 |
| 28 |
| 28 |
| 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT negpaygrade,RANK(negpaygrade) FROM (SELECT -1 * paygrade as negpaygrade from TDemployee) t SEQUENCE BY negpaygrade; |
| |
| NEGPAYGRADE (EXPR) |
| -------------------- -------------------- |
| |
| -10 1 |
| -10 1 |
| -10 1 |
| -9 4 |
| -9 4 |
| -9 4 |
| -8 7 |
| -8 7 |
| -8 7 |
| -7 10 |
| -7 10 |
| -7 10 |
| -6 13 |
| -6 13 |
| -6 13 |
| -5 16 |
| -5 16 |
| -5 16 |
| -4 19 |
| -4 19 |
| -4 19 |
| -3 22 |
| -3 22 |
| -3 22 |
| -2 25 |
| -2 25 |
| -2 25 |
| -1 28 |
| -1 28 |
| -1 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>--SF RANK WITH asc/desC |
| >> |
| >>SELECT RANK(workgroupnum ASC ) FROM TDemployee SEQUENCE BY workgroupnum; |
| |
| *** ERROR[4362] Using ASC/DESC with sequence functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(workgroupnum DESC ) FROM TDemployee SEQUENCE BY workgroupnum; |
| |
| *** ERROR[4362] Using ASC/DESC with sequence functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(workgroupnum ASC , sex DESC ) FROM TDemployee SEQUENCE BY workgroupnum, sex; |
| |
| *** ERROR[4362] Using ASC/DESC with sequence functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(workgroupnum DESC , sex DESC) FROM TDemployee SEQUENCE BY workgroupnum, sex; |
| |
| *** ERROR[4362] Using ASC/DESC with sequence functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(workgroupnum ASC , sex ASC) FROM TDemployee SEQUENCE BY workgroupnum, sex; |
| |
| *** ERROR[4362] Using ASC/DESC with sequence functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>--------------------------------- |
| >> |
| >>--QUALIFY & SEQUENCE FUNCTIONS |
| >>SELECT workgroupnum, sex, RANK(workgroupnum, sex) TD_RANK FROM TDemployee sequence by workgroupnum, sex qualify workgroupnum> 1 and rank(workgroupnum, sex)<200; |
| |
| *** ERROR[4360] Using sequence by and qualify clauses together in the same query scope is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>-- NO TD GROUP BY |
| >>-- TERADATA TYPE RANK (TD RANK) |
| >> |
| >>SELECT DateOfBirth ,RANK(DateOfBirth) TD_RANK FROM TDemployee; |
| |
| DATEOFBIRTH TD_RANK |
| ----------- -------------------- |
| |
| 1941-12-08 1 |
| 1941-12-07 2 |
| 1941-12-07 2 |
| 1941-11-07 4 |
| 1941-11-07 4 |
| 1941-10-07 6 |
| 1941-10-07 6 |
| 1941-09-07 8 |
| 1941-09-07 8 |
| 1941-08-07 10 |
| 1941-08-07 10 |
| 1941-07-07 12 |
| 1941-07-07 12 |
| 1941-06-08 14 |
| 1941-06-07 15 |
| 1941-06-07 15 |
| 1941-05-07 17 |
| 1941-05-07 17 |
| 1941-04-08 19 |
| 1941-04-07 20 |
| 1941-04-07 20 |
| 1941-03-08 22 |
| 1941-03-07 23 |
| 1941-03-07 23 |
| 1941-02-08 25 |
| 1941-02-07 26 |
| 1941-02-07 26 |
| 1941-01-08 28 |
| 1941-01-07 29 |
| 1941-01-07 29 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT firstname,RANK(firstname) TD_RANK FROM TDemployee; |
| |
| FIRSTNAME TD_RANK |
| -------------- -------------------- |
| |
| Bruce 1 |
| Bridget 2 |
| Bob 3 |
| Bill 4 |
| Betsy 5 |
| Belinda 6 |
| Becky 7 |
| Arturo 8 |
| Arthur 9 |
| Arnold 10 |
| Anton 11 |
| Annette 12 |
| Anne 13 |
| Annabelle 14 |
| Anna 15 |
| Andrew 16 |
| Andreas 17 |
| Andrea 18 |
| Amy 19 |
| Amanda 20 |
| Alvin 21 |
| Aloysius 22 |
| Alicia 23 |
| Alice 24 |
| Alan 25 |
| Akihiro 26 |
| Adriana 27 |
| Abelard 28 |
| Abe 29 |
| Abby 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT sex,RANK(sex) TD_RANK FROM TDemployee; |
| |
| SEX TD_RANK |
| --- -------------------- |
| |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT annualsalary,RANK(annualsalary) TD_RANK FROM TDemployee; |
| |
| ANNUALSALARY TD_RANK |
| ------------ -------------------- |
| |
| 30000 1 |
| 30000 1 |
| 30000 1 |
| 29000 4 |
| 29000 4 |
| 29000 4 |
| 28000 7 |
| 28000 7 |
| 28000 7 |
| 27000 10 |
| 27000 10 |
| 27000 10 |
| 26000 13 |
| 26000 13 |
| 26000 13 |
| 25000 16 |
| 25000 16 |
| 25000 16 |
| 24000 19 |
| 24000 19 |
| 24000 19 |
| 23000 22 |
| 23000 22 |
| 23000 22 |
| 22000 25 |
| 22000 25 |
| 22000 25 |
| 21000 28 |
| 21000 28 |
| 21000 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT annualsalary,RANK(annualsalary) TD_RANK FROM TDemployee WHERE paygrade >1; |
| |
| ANNUALSALARY TD_RANK |
| ------------ -------------------- |
| |
| 30000 1 |
| 30000 1 |
| 30000 1 |
| 29000 4 |
| 29000 4 |
| 29000 4 |
| 28000 7 |
| 28000 7 |
| 28000 7 |
| 27000 10 |
| 27000 10 |
| 27000 10 |
| 26000 13 |
| 26000 13 |
| 26000 13 |
| 25000 16 |
| 25000 16 |
| 25000 16 |
| 24000 19 |
| 24000 19 |
| 24000 19 |
| 23000 22 |
| 23000 22 |
| 23000 22 |
| 22000 25 |
| 22000 25 |
| 22000 25 |
| |
| --- 27 row(s) selected. |
| >> |
| >>SELECT workgroupnum, sex,RANK(workgroupnum, sex) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT sex,RANK(sex) TD_RANK FROM TDemployee; |
| |
| SEX TD_RANK |
| --- -------------------- |
| |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| M 1 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| F 16 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT negpaygrade,RANK(negpaygrade) TD_RANK FROM (SELECT -1 * paygrade as negpaygrade from TDemployee ) t; |
| |
| NEGPAYGRADE TD_RANK |
| -------------------- -------------------- |
| |
| -1 1 |
| -1 1 |
| -1 1 |
| -2 4 |
| -2 4 |
| -2 4 |
| -3 7 |
| -3 7 |
| -3 7 |
| -4 10 |
| -4 10 |
| -4 10 |
| -5 13 |
| -5 13 |
| -5 13 |
| -6 16 |
| -6 16 |
| -6 16 |
| -7 19 |
| -7 19 |
| -7 19 |
| -8 22 |
| -8 22 |
| -8 22 |
| -9 25 |
| -9 25 |
| -9 25 |
| -10 28 |
| -10 28 |
| -10 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--Expressions with TD rank |
| >> |
| >>SELECT CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END, sex) TD_RANK |
| +>FROM TDemployee; |
| |
| TRANS_COUNT_EXPR SEX TD_RANK |
| ---------------- --- -------------------- |
| |
| z M 1 |
| z M 1 |
| z M 1 |
| z M 1 |
| z M 1 |
| z F 6 |
| z F 6 |
| z F 6 |
| z F 6 |
| z F 6 |
| y M 11 |
| y M 11 |
| y M 11 |
| y M 11 |
| y M 11 |
| y F 16 |
| y F 16 |
| y F 16 |
| y F 16 |
| y F 16 |
| x M 21 |
| x M 21 |
| x M 21 |
| x M 21 |
| x M 21 |
| x F 26 |
| x F 26 |
| x F 26 |
| x F 26 |
| x F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select -1 * annualsalary neg_total, rank(-1 * annualsalary) TD_RANK from TDemployee; |
| |
| NEG_TOTAL TD_RANK |
| -------------------- -------------------- |
| |
| -21000 1 |
| -21000 1 |
| -21000 1 |
| -22000 4 |
| -22000 4 |
| -22000 4 |
| -23000 7 |
| -23000 7 |
| -23000 7 |
| -24000 10 |
| -24000 10 |
| -24000 10 |
| -25000 13 |
| -25000 13 |
| -25000 13 |
| -26000 16 |
| -26000 16 |
| -26000 16 |
| -27000 19 |
| -27000 19 |
| -27000 19 |
| -28000 22 |
| -28000 22 |
| -28000 22 |
| -29000 25 |
| -29000 25 |
| -29000 25 |
| -30000 28 |
| -30000 28 |
| -30000 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT case when workgroupnum =1 then 'A' else 'B' end workgroupnum_expr, sex, |
| +>RANK(case when workgroupnum =1 then 'A' else 'B' end, sex) TD_RANK |
| +>FROM TDemployee qualify RANK(case when workgroupnum =1 then 'A' else 'B' end, sex) > 1; |
| |
| WORKGROUPNUM_EXPR SEX TD_RANK |
| ----------------- --- -------------------- |
| |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| B F 11 |
| A M 21 |
| A M 21 |
| A M 21 |
| A M 21 |
| A M 21 |
| A F 26 |
| A F 26 |
| A F 26 |
| A F 26 |
| A F 26 |
| |
| --- 20 row(s) selected. |
| >> |
| >>--Derived table |
| >>SELECT workgroupnum,paygrade, sum_annualsalary,Rank(sum_annualsalary) TD_RANK |
| +>FROM (SELECT workgroupnum,paygrade, SUM(annualsalary) sum_annualsalary FROM TDemployee GROUP BY workgroupnum,paygrade) T |
| +>ORDER BY 2 DESC, 1; |
| |
| WORKGROUPNUM PAYGRADE SUM_ANNUALSALARY TD_RANK |
| ------------ ---------- -------------------- -------------------- |
| |
| 1 10 30000 1 |
| 2 10 30000 1 |
| 3 10 30000 1 |
| 1 9 29000 4 |
| 2 9 29000 4 |
| 3 9 29000 4 |
| 1 8 28000 7 |
| 2 8 28000 7 |
| 3 8 28000 7 |
| 1 7 27000 10 |
| 2 7 27000 10 |
| 3 7 27000 10 |
| 1 6 26000 13 |
| 2 6 26000 13 |
| 3 6 26000 13 |
| 1 5 25000 16 |
| 2 5 25000 16 |
| 3 5 25000 16 |
| 1 4 24000 19 |
| 2 4 24000 19 |
| 3 4 24000 19 |
| 1 3 23000 22 |
| 2 3 23000 22 |
| 3 3 23000 22 |
| 1 2 22000 25 |
| 2 2 22000 25 |
| 3 2 22000 25 |
| 1 1 21000 28 |
| 2 1 21000 28 |
| 3 1 21000 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum, sum_annualsalary,Rank(sum_annualsalary) TD_RANK |
| +>FROM (SELECT workgroupnum, SUM(annualsalary) sum_annualsalary FROM TDemployee GROUP BY workgroupnum) T |
| +>ORDER BY 2 DESC, 1; |
| |
| WORKGROUPNUM SUM_ANNUALSALARY TD_RANK |
| ------------ -------------------- -------------------- |
| |
| 1 255000 1 |
| 2 255000 1 |
| 3 255000 1 |
| |
| --- 3 row(s) selected. |
| >> |
| >> |
| >> |
| >>--TD and ASC / DESC / default order (desc) |
| >> |
| >>SELECT workgroupnum,RANK(workgroupnum ASC ) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM TD_RANK |
| ------------ -------------------- |
| |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 1 1 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,RANK(workgroupnum DESC ) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM TD_RANK |
| ------------ -------------------- |
| |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| 1 21 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(workgroupnum ASC , sex DESC ) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 3 M 21 |
| 3 M 21 |
| 3 M 21 |
| 3 M 21 |
| 3 M 21 |
| 3 F 26 |
| 3 F 26 |
| 3 F 26 |
| 3 F 26 |
| 3 F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(workgroupnum DESC , sex DESC) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(workgroupnum ASC , sex ASC) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 1 F 1 |
| 1 F 1 |
| 1 F 1 |
| 1 F 1 |
| 1 F 1 |
| 1 M 6 |
| 1 M 6 |
| 1 M 6 |
| 1 M 6 |
| 1 M 6 |
| 2 F 11 |
| 2 F 11 |
| 2 F 11 |
| 2 F 11 |
| 2 F 11 |
| 2 M 16 |
| 2 M 16 |
| 2 M 16 |
| 2 M 16 |
| 2 M 16 |
| 3 F 21 |
| 3 F 21 |
| 3 F 21 |
| 3 F 21 |
| 3 F 21 |
| 3 M 26 |
| 3 M 26 |
| 3 M 26 |
| 3 M 26 |
| 3 M 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(workgroupnum ASC , sex) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 3 M 21 |
| 3 M 21 |
| 3 M 21 |
| 3 M 21 |
| 3 M 21 |
| 3 F 26 |
| 3 F 26 |
| 3 F 26 |
| 3 F 26 |
| 3 F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(workgroupnum , sex ASC) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 F 1 |
| 3 F 1 |
| 3 F 1 |
| 3 F 1 |
| 3 F 1 |
| 3 M 6 |
| 3 M 6 |
| 3 M 6 |
| 3 M 6 |
| 3 M 6 |
| 2 F 11 |
| 2 F 11 |
| 2 F 11 |
| 2 F 11 |
| 2 F 11 |
| 2 M 16 |
| 2 M 16 |
| 2 M 16 |
| 2 M 16 |
| 2 M 16 |
| 1 F 21 |
| 1 F 21 |
| 1 F 21 |
| 1 F 21 |
| 1 F 21 |
| 1 M 26 |
| 1 M 26 |
| 1 M 26 |
| 1 M 26 |
| 1 M 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(workgroupnum, sex) TD_RANK FROM TDemployee; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee; |
| |
| TRANS_COUNT_EXPR SEX TD_RANK |
| ---------------- --- -------------------- |
| |
| x M 1 |
| x M 1 |
| x M 1 |
| x M 1 |
| x M 1 |
| x F 6 |
| x F 6 |
| x F 6 |
| x F 6 |
| x F 6 |
| y M 11 |
| y M 11 |
| y M 11 |
| y M 11 |
| y M 11 |
| y F 16 |
| y F 16 |
| y F 16 |
| y F 16 |
| y F 16 |
| z M 21 |
| z M 21 |
| z M 21 |
| z M 21 |
| z M 21 |
| z F 26 |
| z F 26 |
| z F 26 |
| z F 26 |
| z F 26 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,RANK(workgroupnum ASC ) TD_RANK FROM TDemployee qualify RANK(workgroupnum ASC ) >1; |
| |
| WORKGROUPNUM TD_RANK |
| ------------ -------------------- |
| |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 2 11 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| 3 21 |
| |
| --- 20 row(s) selected. |
| >> |
| >>-----QUALIFY |
| >> |
| >>SELECT workgroupnum, sex,RANK(workgroupnum, sex) TD_RANK FROM TDemployee qualify workgroupnum> 1 and rank(workgroupnum, sex)<200; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| |
| --- 20 row(s) selected. |
| >> |
| >> |
| >>SELECT workgroupnum, sex, RANK(workgroupnum, sex) TD_RANK FROM TDemployee qualify paygrade> 1; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| |
| --- 27 row(s) selected. |
| >> |
| >> |
| >>SELECT workgroupnum, sex, RANK(workgroupnum, sex) TD_RANK FROM TDemployee qualify rank(workgroupnum, sex)<200 and paygrade >1; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 M 11 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 2 F 16 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 M 21 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| 1 F 26 |
| |
| --- 27 row(s) selected. |
| >> |
| >>--TD rank in qualify clause but no TD Rank in select list |
| >> |
| >>SELECT paygrade, sex FROM TDemployee qualify RANK(paygrade)> 1; |
| |
| PAYGRADE SEX |
| ---------- --- |
| |
| 9 M |
| 9 M |
| 9 M |
| 8 F |
| 8 F |
| 8 F |
| 7 M |
| 7 M |
| 7 M |
| 6 F |
| 6 F |
| 6 F |
| 5 M |
| 5 M |
| 5 M |
| 4 F |
| 4 F |
| 4 F |
| 3 M |
| 3 M |
| 3 M |
| 2 F |
| 2 F |
| 2 F |
| 1 M |
| 1 M |
| 1 M |
| |
| --- 27 row(s) selected. |
| >> |
| >>--TD RANK neither in qualify nor in select list |
| >> |
| >>SELECT paygrade, sex FROM TDemployee qualify paygrade> 1; |
| |
| *** ERROR[4363] Using Qualify clause without using rank function in the query is not allowed. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--qualify and devived table |
| >> |
| >>SELECT workgroupnum,paygrade, sum_annualsalary,Rank(sum_annualsalary) TD_RANK |
| +>FROM (SELECT workgroupnum,paygrade, SUM(annualsalary) sum_annualsalary,SUM(paygrade) as sum_paygrade FROM TDemployee GROUP BY workgroupnum,paygrade) T |
| +>QUALIFY Rank(sum_annualsalary) >5 |
| +>ORDER BY 3 desc ,1,2; |
| |
| WORKGROUPNUM PAYGRADE SUM_ANNUALSALARY TD_RANK |
| ------------ ---------- -------------------- -------------------- |
| |
| 1 8 28000 7 |
| 2 8 28000 7 |
| 3 8 28000 7 |
| 1 7 27000 10 |
| 2 7 27000 10 |
| 3 7 27000 10 |
| 1 6 26000 13 |
| 2 6 26000 13 |
| 3 6 26000 13 |
| 1 5 25000 16 |
| 2 5 25000 16 |
| 3 5 25000 16 |
| 1 4 24000 19 |
| 2 4 24000 19 |
| 3 4 24000 19 |
| 1 3 23000 22 |
| 2 3 23000 22 |
| 3 3 23000 22 |
| 1 2 22000 25 |
| 2 2 22000 25 |
| 3 2 22000 25 |
| 1 1 21000 28 |
| 2 1 21000 28 |
| 3 1 21000 28 |
| |
| --- 24 row(s) selected. |
| >> |
| >> |
| >>SELECT workgroupnum, sum_paygrade |
| +>FROM (SELECT workgroupnum, SUM(annualsalary) sum_annualsalary,SUM(paygrade) as sum_paygrade FROM TDemployee GROUP BY workgroupnum) T |
| +>QUALIFY Rank(sum_paygrade) >2 |
| +>ORDER BY 2 DESC, 1; |
| |
| --- 0 row(s) selected. |
| >> |
| >>SELECT CASE paygrade WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE paygrade WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee |
| +>QUALIFY RANK(CASE paygrade WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) >1; |
| |
| TRANS_COUNT_EXPR SEX TD_RANK |
| ---------------- --- -------------------- |
| |
| y F 4 |
| y F 4 |
| y F 4 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z M 7 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| z F 19 |
| |
| --- 27 row(s) selected. |
| >> |
| >>---TD RANK , QUALIFY & WHERE |
| >>SELECT CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee where num <> 1 |
| +>QUALIFY RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) >1; |
| |
| TRANS_COUNT_EXPR SEX TD_RANK |
| ---------------- --- -------------------- |
| |
| x F 5 |
| x F 5 |
| x F 5 |
| x F 5 |
| x F 5 |
| y M 10 |
| y M 10 |
| y M 10 |
| y M 10 |
| y M 10 |
| y F 15 |
| y F 15 |
| y F 15 |
| y F 15 |
| y F 15 |
| z M 20 |
| z M 20 |
| z M 20 |
| z M 20 |
| z M 20 |
| z F 25 |
| z F 25 |
| z F 25 |
| z F 25 |
| z F 25 |
| |
| --- 25 row(s) selected. |
| >> |
| >>SELECT CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee |
| +>QUALIFY RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) >1 and workgroupnum<>1; |
| |
| TRANS_COUNT_EXPR SEX TD_RANK |
| ---------------- --- -------------------- |
| |
| y M 11 |
| y M 11 |
| y M 11 |
| y M 11 |
| y M 11 |
| y F 16 |
| y F 16 |
| y F 16 |
| y F 16 |
| y F 16 |
| z M 21 |
| z M 21 |
| z M 21 |
| z M 21 |
| z M 21 |
| z F 26 |
| z F 26 |
| z F 26 |
| z F 26 |
| z F 26 |
| |
| --- 20 row(s) selected. |
| >> |
| >>SELECT CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee |
| +>QUALIFY RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END , sex) >1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- Multiple TD Ranks & equivalent expressions |
| >> |
| >>SELECT paygrade, RANK(annualsalary) TD_RANK2 FROM TDemployee qualify rank(paygrade)> 1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, RANK(paygrade) TD_RANK2 FROM TDemployee qualify rank(paygrade)> 1; |
| |
| PAYGRADE TD_RANK2 |
| ---------- -------------------- |
| |
| 9 4 |
| 9 4 |
| 9 4 |
| 8 7 |
| 8 7 |
| 8 7 |
| 7 10 |
| 7 10 |
| 7 10 |
| 6 13 |
| 6 13 |
| 6 13 |
| 5 16 |
| 5 16 |
| 5 16 |
| 4 19 |
| 4 19 |
| 4 19 |
| 3 22 |
| 3 22 |
| 3 22 |
| 2 25 |
| 2 25 |
| 2 25 |
| 1 28 |
| 1 28 |
| 1 28 |
| |
| --- 27 row(s) selected. |
| >> |
| >>SELECT annualsalary/paygrade as A, RANK(annualsalary/paygrade) TD_RANK2 FROM TDemployee qualify rank(annualsalary/paygrade)> 1; |
| |
| A TD_RANK2 |
| ---------------------- -------------------- |
| |
| 11000.0000000000 4 |
| 11000.0000000000 4 |
| 11000.0000000000 4 |
| 7666.6666666666 7 |
| 7666.6666666666 7 |
| 7666.6666666666 7 |
| 6000.0000000000 10 |
| 6000.0000000000 10 |
| 6000.0000000000 10 |
| 5000.0000000000 13 |
| 5000.0000000000 13 |
| 5000.0000000000 13 |
| 4333.3333333333 16 |
| 4333.3333333333 16 |
| 4333.3333333333 16 |
| 3857.1428571428 19 |
| 3857.1428571428 19 |
| 3857.1428571428 19 |
| 3500.0000000000 22 |
| 3500.0000000000 22 |
| 3500.0000000000 22 |
| 3222.2222222222 25 |
| 3222.2222222222 25 |
| 3222.2222222222 25 |
| 3000.0000000000 28 |
| 3000.0000000000 28 |
| 3000.0000000000 28 |
| |
| --- 27 row(s) selected. |
| >> |
| >>SELECT annualsalary/cast(paygrade as DECIMAL(9,2)) as A, RANK(annualsalary/cast(paygrade as DECIMAL(9,2))) TD_RANK2 FROM TDemployee qualify rank(annualsalary/cast(paygrade as DECIMAL(9,2)))> 1; |
| |
| A TD_RANK2 |
| --------------------- -------------------- |
| |
| 11000.000000 4 |
| 11000.000000 4 |
| 11000.000000 4 |
| 7666.666666 7 |
| 7666.666666 7 |
| 7666.666666 7 |
| 6000.000000 10 |
| 6000.000000 10 |
| 6000.000000 10 |
| 5000.000000 13 |
| 5000.000000 13 |
| 5000.000000 13 |
| 4333.333333 16 |
| 4333.333333 16 |
| 4333.333333 16 |
| 3857.142857 19 |
| 3857.142857 19 |
| 3857.142857 19 |
| 3500.000000 22 |
| 3500.000000 22 |
| 3500.000000 22 |
| 3222.222222 25 |
| 3222.222222 25 |
| 3222.222222 25 |
| 3000.000000 28 |
| 3000.000000 28 |
| 3000.000000 28 |
| |
| --- 27 row(s) selected. |
| >> |
| >>SELECT paygrade, RANK(paygrade +10 ) TD_RANK2 FROM TDemployee qualify rank(paygrade +10)> 1; |
| |
| PAYGRADE TD_RANK2 |
| ---------- -------------------- |
| |
| 9 4 |
| 9 4 |
| 9 4 |
| 8 7 |
| 8 7 |
| 8 7 |
| 7 10 |
| 7 10 |
| 7 10 |
| 6 13 |
| 6 13 |
| 6 13 |
| 5 16 |
| 5 16 |
| 5 16 |
| 4 19 |
| 4 19 |
| 4 19 |
| 3 22 |
| 3 22 |
| 3 22 |
| 2 25 |
| 2 25 |
| 2 25 |
| 1 28 |
| 1 28 |
| 1 28 |
| |
| --- 27 row(s) selected. |
| >> |
| >>SELECT paygrade, RANK(paygrade +10 ) TD_RANK2 FROM TDemployee qualify rank(paygrade +11)> 1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK1 FROM TDemployee qualify rank(paygrade, sex)<200; |
| |
| PAYGRADE SEX TD_RANK1 |
| ---------- --- -------------------- |
| |
| 10 F 1 |
| 10 F 1 |
| 10 F 1 |
| 9 M 4 |
| 9 M 4 |
| 9 M 4 |
| 8 F 7 |
| 8 F 7 |
| 8 F 7 |
| 7 M 10 |
| 7 M 10 |
| 7 M 10 |
| 6 F 13 |
| 6 F 13 |
| 6 F 13 |
| 5 M 16 |
| 5 M 16 |
| 5 M 16 |
| 4 F 19 |
| 4 F 19 |
| 4 F 19 |
| 3 M 22 |
| 3 M 22 |
| 3 M 22 |
| 2 F 25 |
| 2 F 25 |
| 2 F 25 |
| 1 M 28 |
| 1 M 28 |
| 1 M 28 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK1 ,RANK(paygrade) TD_RANK2 FROM TDemployee qualify paygrade> 1 and rank(paygrade, sex)<200; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK FROM TDemployee qualify paygrade> 1 and rank(paygrade, sex asc)<200; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK FROM TDemployee qualify paygrade> 1 and rank(paygrade)<200; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--TD rank & STRINGs |
| >>SELECT substring(firstname, 1 ,4) sub_firstname, rank(substring(firstname, 1 ,4)) as TD_RANK |
| +>FROM TDemployee |
| +>QUALIFY rank(substring(firstname, 1 ,4)) >1; |
| |
| SUB_FIRSTNAME TD_RANK |
| ------------- -------------------- |
| |
| Brid 2 |
| Bob 3 |
| Bill 4 |
| Bets 5 |
| Beli 6 |
| Beck 7 |
| Artu 8 |
| Arth 9 |
| Arno 10 |
| Anto 11 |
| Anne 12 |
| Anne 12 |
| Anna 14 |
| Anna 14 |
| Andr 16 |
| Andr 16 |
| Andr 16 |
| Amy 19 |
| Aman 20 |
| Alvi 21 |
| Aloy 22 |
| Alic 23 |
| Alic 23 |
| Alan 25 |
| Akih 26 |
| Adri 27 |
| Abel 28 |
| Abe 29 |
| Abby 30 |
| |
| --- 29 row(s) selected. |
| >> |
| >>SELECT substring(firstname, 1 ,4) sub_firstname, rank(substring(firstname, 1 ,4)) as TD_RANK |
| +>FROM TDemployee |
| +>QUALIFY rank(substring(firstname, 1 ,2)) >1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT UPPER(substring(firstname, 1 ,4)) up_sub_firstname , rank(UPPER(substring(firstname, 1 ,4))) as TD_RANK |
| +>FROM TDemployee |
| +>QUALIFY rank(UPPER(substring(firstname, 1 ,4))) >1; |
| |
| UP_SUB_FIRSTNAME TD_RANK |
| ---------------- -------------------- |
| |
| BRID 2 |
| BOB 3 |
| BILL 4 |
| BETS 5 |
| BELI 6 |
| BECK 7 |
| ARTU 8 |
| ARTH 9 |
| ARNO 10 |
| ANTO 11 |
| ANNE 12 |
| ANNE 12 |
| ANNA 14 |
| ANNA 14 |
| ANDR 16 |
| ANDR 16 |
| ANDR 16 |
| AMY 19 |
| AMAN 20 |
| ALVI 21 |
| ALOY 22 |
| ALIC 23 |
| ALIC 23 |
| ALAN 25 |
| AKIH 26 |
| ADRI 27 |
| ABEL 28 |
| ABE 29 |
| ABBY 30 |
| |
| --- 29 row(s) selected. |
| >> |
| >>-----TD RANK and aggregate functions |
| >>SELECT num, Rank(sum(annualsalary)) TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY num; |
| |
| *** ERROR[4365] Using rank function and aggregate functions in the same scope is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT num, Rank(annualsalary) TD_RANK ,sum(annualsalary) |
| +>FROM TDemployee |
| +>GROUP BY num; |
| |
| *** ERROR[4365] Using rank function and aggregate functions in the same scope is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>SELECT paygrade,rank(annualsalary) r |
| +>FROM TDemployee |
| +>GROUP BY paygrade |
| +>having paygrade>1; |
| |
| *** ERROR[4109] Sequence functions are placed incorrectly: RUNNINGRANK(ANNUALSALARY). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade,rank(annualsalary) r |
| +>FROM TDemployee |
| +>GROUP BY paygrade |
| +>having paygrade>1; |
| |
| *** ERROR[4109] Sequence functions are placed incorrectly: RUNNINGRANK(ANNUALSALARY). |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >> |
| >>---TD and SF -- |
| >>SELECT num, runningsum(annualsalary) , rank(annualsalary) from TDemployee; |
| |
| *** ERROR[4367] Using rank function and sequence functions together in the same query scope is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT num, runningsum(annualsalary) , rank(annualsalary) from TDemployee SEQUENCE BY num; |
| |
| NUM (EXPR) (EXPR) |
| ---------- -------------------- -------------------- |
| |
| 1 21000 1 |
| 2 43000 2 |
| 3 66000 3 |
| 4 90000 4 |
| 5 115000 5 |
| 6 141000 6 |
| 7 168000 7 |
| 8 196000 8 |
| 9 225000 9 |
| 10 255000 10 |
| 11 276000 11 |
| 12 298000 12 |
| 13 321000 13 |
| 14 345000 14 |
| 15 370000 15 |
| 16 396000 16 |
| 17 423000 17 |
| 18 451000 18 |
| 19 480000 19 |
| 20 510000 20 |
| 21 531000 21 |
| 22 553000 22 |
| 23 576000 23 |
| 24 600000 24 |
| 25 625000 25 |
| 26 651000 26 |
| 27 678000 27 |
| 28 706000 28 |
| 29 735000 29 |
| 30 765000 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--RANK in WEHERE clause -- not supported |
| >>SELECT num,rank(paygrade) FROM TDemployee where RANK(paygrade) < 2; |
| |
| *** ERROR[4364] Rank can be placed only in the select list or the qualify clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- TD RANK and diffrent scopes |
| >> |
| >>SELECT * FROM (SELECT num, paygrade,RANK(paygrade) r_paygrade FROM TDemployee) t1 join (SELECT num, workgroupnum, RANK(workgroupnum) r_workgroupnum FROM TDemployee) t2 on t1.num=t2.num order by t1.num; |
| |
| NUM PAYGRADE R_PAYGRADE NUM WORKGROUPNUM R_WORKGROUPNUM |
| ---------- ---------- -------------------- ---------- ------------ -------------------- |
| |
| 1 1 28 1 1 21 |
| 2 2 25 2 1 21 |
| 3 3 22 3 1 21 |
| 4 4 19 4 1 21 |
| 5 5 16 5 1 21 |
| 6 6 13 6 1 21 |
| 7 7 10 7 1 21 |
| 8 8 7 8 1 21 |
| 9 9 4 9 1 21 |
| 10 10 1 10 1 21 |
| 11 1 28 11 2 11 |
| 12 2 25 12 2 11 |
| 13 3 22 13 2 11 |
| 14 4 19 14 2 11 |
| 15 5 16 15 2 11 |
| 16 6 13 16 2 11 |
| 17 7 10 17 2 11 |
| 18 8 7 18 2 11 |
| 19 9 4 19 2 11 |
| 20 10 1 20 2 11 |
| 21 1 28 21 3 1 |
| 22 2 25 22 3 1 |
| 23 3 22 23 3 1 |
| 24 4 19 24 3 1 |
| 25 5 16 25 3 1 |
| 26 6 13 26 3 1 |
| 27 7 10 27 3 1 |
| 28 8 7 28 3 1 |
| 29 9 4 29 3 1 |
| 30 10 1 30 3 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>SELECT paygrade,r,RANK(r) |
| +>FROM |
| +>(SELECT PAYGRADE,RANK(ANNUALSALARY) r FROM TDEMPLOYEE sequence by num ) t; |
| |
| PAYGRADE R (EXPR) |
| ---------- -------------------- -------------------- |
| |
| 10 30 1 |
| 9 29 2 |
| 8 28 3 |
| 7 27 4 |
| 6 26 5 |
| 5 25 6 |
| 4 24 7 |
| 3 23 8 |
| 2 22 9 |
| 1 21 10 |
| 10 20 11 |
| 9 19 12 |
| 8 18 13 |
| 7 17 14 |
| 6 16 15 |
| 5 15 16 |
| 4 14 17 |
| 3 13 18 |
| 2 12 19 |
| 1 11 20 |
| 10 10 21 |
| 9 9 22 |
| 8 8 23 |
| 7 7 24 |
| 6 6 25 |
| 5 5 26 |
| 4 4 27 |
| 3 3 28 |
| 2 2 29 |
| 1 1 30 |
| |
| --- 30 row(s) selected. |
| >> |
| >>-------------------------------------------------------------------------------------- |
| >>-------------------------------------------------------------------------------------- |
| >>-------------------------------------------------------------------------------------- |
| >> |
| >>--TD GROUP BY |
| >> |
| >>SELECT workgroupnum, sex, RANK(workgroupnum, sex) TD_RANK FROM TDemployee sequence by workgroupnum, sex GROUP BY sex qualify workgroupnum> 1 and rank(workgroupnum, sex)<200; |
| |
| *** ERROR[4360] Using sequence by and qualify clauses together in the same query scope is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-- TERADATA TYPE RANK (TD RANK) |
| >> |
| >>SELECT DateOfBirth ,RANK(DateOfBirth) TD_RANK FROM TDemployee GROUP BY sex,workgroupnum; |
| |
| DATEOFBIRTH TD_RANK |
| ----------- -------------------- |
| |
| 1941-10-07 1 |
| 1941-08-07 2 |
| 1941-06-07 3 |
| 1941-04-07 4 |
| 1941-02-07 5 |
| 1941-12-07 1 |
| 1941-08-07 2 |
| 1941-06-07 3 |
| 1941-04-07 4 |
| 1941-02-07 5 |
| 1941-12-07 1 |
| 1941-10-07 2 |
| 1941-06-08 3 |
| 1941-04-08 4 |
| 1941-02-08 5 |
| 1941-09-07 1 |
| 1941-07-07 2 |
| 1941-05-07 3 |
| 1941-03-07 4 |
| 1941-01-07 5 |
| 1941-11-07 1 |
| 1941-07-07 2 |
| 1941-05-07 3 |
| 1941-03-07 4 |
| 1941-01-07 5 |
| 1941-12-08 1 |
| 1941-11-07 2 |
| 1941-09-07 3 |
| 1941-03-08 4 |
| 1941-01-08 5 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT firstname,RANK(firstname) TD_RANK FROM TDemployee GROUP BY sex; |
| |
| FIRSTNAME TD_RANK |
| -------------- -------------------- |
| |
| Bridget 1 |
| Betsy 2 |
| Belinda 3 |
| Becky 4 |
| Annette 5 |
| Anne 6 |
| Annabelle 7 |
| Anna 8 |
| Andrea 9 |
| Amy 10 |
| Amanda 11 |
| Alicia 12 |
| Alice 13 |
| Adriana 14 |
| Abby 15 |
| Bruce 1 |
| Bob 2 |
| Bill 3 |
| Arturo 4 |
| Arthur 5 |
| Arnold 6 |
| Anton 7 |
| Andrew 8 |
| Andreas 9 |
| Alvin 10 |
| Aloysius 11 |
| Alan 12 |
| Akihiro 13 |
| Abelard 14 |
| Abe 15 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(sex) TD_RANK FROM TDemployee GROUP BY workgroupnum; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 1 F 6 |
| 2 M 1 |
| 2 M 1 |
| 2 M 1 |
| 2 M 1 |
| 2 M 1 |
| 2 F 6 |
| 2 F 6 |
| 2 F 6 |
| 2 F 6 |
| 2 F 6 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| 3 F 6 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT sex,workgroupnum,annualsalary,RANK(annualsalary) TD_RANK FROM TDemployee GROUP BY sex,workgroupnum; |
| |
| SEX WORKGROUPNUM ANNUALSALARY TD_RANK |
| --- ------------ ------------ -------------------- |
| |
| F 1 30000 1 |
| F 1 28000 2 |
| F 1 26000 3 |
| F 1 24000 4 |
| F 1 22000 5 |
| F 2 30000 1 |
| F 2 28000 2 |
| F 2 26000 3 |
| F 2 24000 4 |
| F 2 22000 5 |
| F 3 30000 1 |
| F 3 28000 2 |
| F 3 26000 3 |
| F 3 24000 4 |
| F 3 22000 5 |
| M 1 29000 1 |
| M 1 27000 2 |
| M 1 25000 3 |
| M 1 23000 4 |
| M 1 21000 5 |
| M 2 29000 1 |
| M 2 27000 2 |
| M 2 25000 3 |
| M 2 23000 4 |
| M 2 21000 5 |
| M 3 29000 1 |
| M 3 27000 2 |
| M 3 25000 3 |
| M 3 23000 4 |
| M 3 21000 5 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT sex,annualsalary,RANK(annualsalary) TD_RANK FROM TDemployee WHERE paygrade >1 GROUP BY sex; |
| |
| SEX ANNUALSALARY TD_RANK |
| --- ------------ -------------------- |
| |
| F 30000 1 |
| F 30000 1 |
| F 30000 1 |
| F 28000 4 |
| F 28000 4 |
| F 28000 4 |
| F 26000 7 |
| F 26000 7 |
| F 26000 7 |
| F 24000 10 |
| F 24000 10 |
| F 24000 10 |
| F 22000 13 |
| F 22000 13 |
| F 22000 13 |
| M 29000 1 |
| M 29000 1 |
| M 29000 1 |
| M 27000 4 |
| M 27000 4 |
| M 27000 4 |
| M 25000 7 |
| M 25000 7 |
| M 25000 7 |
| M 23000 10 |
| M 23000 10 |
| M 23000 10 |
| |
| --- 27 row(s) selected. |
| >> |
| >>SELECT workgroupnum, paygrade, sex,RANK(workgroupnum, sex) TD_RANK FROM TDemployee GROUP BY paygrade,sex; |
| |
| WORKGROUPNUM PAYGRADE SEX TD_RANK |
| ------------ ---------- --- -------------------- |
| |
| 3 1 M 1 |
| 2 1 M 2 |
| 1 1 M 3 |
| 3 2 F 1 |
| 2 2 F 2 |
| 1 2 F 3 |
| 3 3 M 1 |
| 2 3 M 2 |
| 1 3 M 3 |
| 3 4 F 1 |
| 2 4 F 2 |
| 1 4 F 3 |
| 3 5 M 1 |
| 2 5 M 2 |
| 1 5 M 3 |
| 3 6 F 1 |
| 2 6 F 2 |
| 1 6 F 3 |
| 3 7 M 1 |
| 2 7 M 2 |
| 1 7 M 3 |
| 3 8 F 1 |
| 2 8 F 2 |
| 1 8 F 3 |
| 3 9 M 1 |
| 2 9 M 2 |
| 1 9 M 3 |
| 3 10 F 1 |
| 2 10 F 2 |
| 1 10 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,sex,RANK(sex) TD_RANK FROM TDemployee GROUP BY workgroupnum,sex; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 1 F 1 |
| 1 F 1 |
| 1 F 1 |
| 1 F 1 |
| 1 F 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 1 M 1 |
| 2 F 1 |
| 2 F 1 |
| 2 F 1 |
| 2 F 1 |
| 2 F 1 |
| 2 M 1 |
| 2 M 1 |
| 2 M 1 |
| 2 M 1 |
| 2 M 1 |
| 3 F 1 |
| 3 F 1 |
| 3 F 1 |
| 3 F 1 |
| 3 F 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| 3 M 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT negpaygrade,RANK(negpaygrade) TD_RANK FROM (SELECT workgroupnum, -1 * paygrade as negpaygrade from TDemployee ) t GROUP BY workgroupnum; |
| |
| NEGPAYGRADE TD_RANK |
| -------------------- -------------------- |
| |
| -1 1 |
| -2 2 |
| -3 3 |
| -4 4 |
| -5 5 |
| -6 6 |
| -7 7 |
| -8 8 |
| -9 9 |
| -10 10 |
| -1 1 |
| -2 2 |
| -3 3 |
| -4 4 |
| -5 5 |
| -6 6 |
| -7 7 |
| -8 8 |
| -9 9 |
| -10 10 |
| -1 1 |
| -2 2 |
| -3 3 |
| -4 4 |
| -5 5 |
| -6 6 |
| -7 7 |
| -8 8 |
| -9 9 |
| -10 10 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT case when workgroupnum =1 then 'A' else 'B' end expr, paygrade,RANK(paygrade) TD_RANK FROM TDemployee GROUP BY case when workgroupnum =1 then 'A' else 'B' end; |
| |
| EXPR PAYGRADE TD_RANK |
| ---- ---------- -------------------- |
| |
| A 10 1 |
| A 9 2 |
| A 8 3 |
| A 7 4 |
| A 6 5 |
| A 5 6 |
| A 4 7 |
| A 3 8 |
| A 2 9 |
| A 1 10 |
| B 10 1 |
| B 10 1 |
| B 9 3 |
| B 9 3 |
| B 8 5 |
| B 8 5 |
| B 7 7 |
| B 7 7 |
| B 6 9 |
| B 6 9 |
| B 5 11 |
| B 5 11 |
| B 4 13 |
| B 4 13 |
| B 3 15 |
| B 3 15 |
| B 2 17 |
| B 2 17 |
| B 1 19 |
| B 1 19 |
| |
| --- 30 row(s) selected. |
| >> |
| >>--Expressions with TD rank |
| >> |
| >>SELECT sex,CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END, sex) TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY sex; |
| |
| SEX TRANS_COUNT_EXPR SEX TD_RANK |
| --- ---------------- --- -------------------- |
| |
| F z F 1 |
| F z F 1 |
| F z F 1 |
| F z F 1 |
| F z F 1 |
| F y F 6 |
| F y F 6 |
| F y F 6 |
| F y F 6 |
| F y F 6 |
| F x F 11 |
| F x F 11 |
| F x F 11 |
| F x F 11 |
| F x F 11 |
| M z M 1 |
| M z M 1 |
| M z M 1 |
| M z M 1 |
| M z M 1 |
| M y M 6 |
| M y M 6 |
| M y M 6 |
| M y M 6 |
| M y M 6 |
| M x M 11 |
| M x M 11 |
| M x M 11 |
| M x M 11 |
| M x M 11 |
| |
| --- 30 row(s) selected. |
| >> |
| >>select -1 * annualsalary neg_total, rank(-1 * annualsalary) TD_RANK from TDemployee GROUP BY dateofbirth; |
| |
| NEG_TOTAL TD_RANK |
| -------------------- -------------------- |
| |
| -21000 1 |
| -23000 2 |
| -25000 1 |
| -22000 1 |
| -24000 2 |
| -26000 1 |
| -23000 1 |
| -25000 2 |
| -27000 1 |
| -24000 1 |
| -26000 2 |
| -28000 1 |
| -25000 1 |
| -27000 2 |
| -26000 1 |
| -28000 2 |
| -30000 1 |
| -27000 1 |
| -29000 2 |
| -28000 1 |
| -30000 2 |
| -21000 1 |
| -29000 2 |
| -22000 1 |
| -30000 2 |
| -21000 1 |
| -23000 2 |
| -22000 1 |
| -24000 2 |
| -29000 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT case when workgroupnum =1 then 'A' else 'B' end workgroupnum_expr, sex, |
| +>RANK(case when workgroupnum =1 then 'A' else 'B' end, sex) TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY paygrade |
| +>qualify RANK(case when workgroupnum =1 then 'A' else 'B' end, sex) > 1; |
| |
| WORKGROUPNUM_EXPR SEX TD_RANK |
| ----------------- --- -------------------- |
| |
| A M 3 |
| A F 3 |
| A M 3 |
| A F 3 |
| A M 3 |
| A F 3 |
| A M 3 |
| A F 3 |
| A M 3 |
| A F 3 |
| |
| --- 10 row(s) selected. |
| >> |
| >>--Derived table |
| >>SELECT workgroupnum,paygrade, sum_annualsalary,Rank(sum_annualsalary) TD_RANK |
| +>FROM (SELECT workgroupnum,paygrade, SUM(annualsalary) sum_annualsalary FROM TDemployee GROUP BY workgroupnum,paygrade) T |
| +>GROUP BY workgroupnum |
| +>ORDER BY 2 DESC, 1; |
| |
| WORKGROUPNUM PAYGRADE SUM_ANNUALSALARY TD_RANK |
| ------------ ---------- -------------------- -------------------- |
| |
| 1 10 30000 1 |
| 2 10 30000 1 |
| 3 10 30000 1 |
| 1 9 29000 2 |
| 2 9 29000 2 |
| 3 9 29000 2 |
| 1 8 28000 3 |
| 2 8 28000 3 |
| 3 8 28000 3 |
| 1 7 27000 4 |
| 2 7 27000 4 |
| 3 7 27000 4 |
| 1 6 26000 5 |
| 2 6 26000 5 |
| 3 6 26000 5 |
| 1 5 25000 6 |
| 2 5 25000 6 |
| 3 5 25000 6 |
| 1 4 24000 7 |
| 2 4 24000 7 |
| 3 4 24000 7 |
| 1 3 23000 8 |
| 2 3 23000 8 |
| 3 3 23000 8 |
| 1 2 22000 9 |
| 2 2 22000 9 |
| 3 2 22000 9 |
| 1 1 21000 10 |
| 2 1 21000 10 |
| 3 1 21000 10 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >> |
| >>--TD and ASC / DESC / default order (desc) |
| >> |
| >>SELECT sex,workgroupnum,RANK(workgroupnum ASC ) TD_RANK FROM TDemployee GROUP BY sex; |
| |
| SEX WORKGROUPNUM TD_RANK |
| --- ------------ -------------------- |
| |
| F 1 1 |
| F 1 1 |
| F 1 1 |
| F 1 1 |
| F 1 1 |
| F 2 6 |
| F 2 6 |
| F 2 6 |
| F 2 6 |
| F 2 6 |
| F 3 11 |
| F 3 11 |
| F 3 11 |
| F 3 11 |
| F 3 11 |
| M 1 1 |
| M 1 1 |
| M 1 1 |
| M 1 1 |
| M 1 1 |
| M 2 6 |
| M 2 6 |
| M 2 6 |
| M 2 6 |
| M 2 6 |
| M 3 11 |
| M 3 11 |
| M 3 11 |
| M 3 11 |
| M 3 11 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT workgroupnum,RANK(workgroupnum DESC ) TD_RANK FROM TDemployee GROUP BY sex; |
| |
| WORKGROUPNUM TD_RANK |
| ------------ -------------------- |
| |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 2 6 |
| 2 6 |
| 2 6 |
| 2 6 |
| 2 6 |
| 1 11 |
| 1 11 |
| 1 11 |
| 1 11 |
| 1 11 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 3 1 |
| 2 6 |
| 2 6 |
| 2 6 |
| 2 6 |
| 2 6 |
| 1 11 |
| 1 11 |
| 1 11 |
| 1 11 |
| 1 11 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum,sex,RANK(workgroupnum ASC , sex DESC ) TD_RANK FROM TDemployee GROUP BY paygrade; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 1 1 M 1 |
| 1 2 M 2 |
| 1 3 M 3 |
| 2 1 F 1 |
| 2 2 F 2 |
| 2 3 F 3 |
| 3 1 M 1 |
| 3 2 M 2 |
| 3 3 M 3 |
| 4 1 F 1 |
| 4 2 F 2 |
| 4 3 F 3 |
| 5 1 M 1 |
| 5 2 M 2 |
| 5 3 M 3 |
| 6 1 F 1 |
| 6 2 F 2 |
| 6 3 F 3 |
| 7 1 M 1 |
| 7 2 M 2 |
| 7 3 M 3 |
| 8 1 F 1 |
| 8 2 F 2 |
| 8 3 F 3 |
| 9 1 M 1 |
| 9 2 M 2 |
| 9 3 M 3 |
| 10 1 F 1 |
| 10 2 F 2 |
| 10 3 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum,sex,RANK(workgroupnum DESC , sex DESC) TD_RANK FROM TDemployee GROUP BY paygrade; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 1 3 M 1 |
| 1 2 M 2 |
| 1 1 M 3 |
| 2 3 F 1 |
| 2 2 F 2 |
| 2 1 F 3 |
| 3 3 M 1 |
| 3 2 M 2 |
| 3 1 M 3 |
| 4 3 F 1 |
| 4 2 F 2 |
| 4 1 F 3 |
| 5 3 M 1 |
| 5 2 M 2 |
| 5 1 M 3 |
| 6 3 F 1 |
| 6 2 F 2 |
| 6 1 F 3 |
| 7 3 M 1 |
| 7 2 M 2 |
| 7 1 M 3 |
| 8 3 F 1 |
| 8 2 F 2 |
| 8 1 F 3 |
| 9 3 M 1 |
| 9 2 M 2 |
| 9 1 M 3 |
| 10 3 F 1 |
| 10 2 F 2 |
| 10 1 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum,sex,RANK(workgroupnum ASC , sex ASC) TD_RANK FROM TDemployee GROUP BY paygrade; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 1 1 M 1 |
| 1 2 M 2 |
| 1 3 M 3 |
| 2 1 F 1 |
| 2 2 F 2 |
| 2 3 F 3 |
| 3 1 M 1 |
| 3 2 M 2 |
| 3 3 M 3 |
| 4 1 F 1 |
| 4 2 F 2 |
| 4 3 F 3 |
| 5 1 M 1 |
| 5 2 M 2 |
| 5 3 M 3 |
| 6 1 F 1 |
| 6 2 F 2 |
| 6 3 F 3 |
| 7 1 M 1 |
| 7 2 M 2 |
| 7 3 M 3 |
| 8 1 F 1 |
| 8 2 F 2 |
| 8 3 F 3 |
| 9 1 M 1 |
| 9 2 M 2 |
| 9 3 M 3 |
| 10 1 F 1 |
| 10 2 F 2 |
| 10 3 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum,sex,RANK(workgroupnum ASC , sex) TD_RANK FROM TDemployee GROUP BY paygrade; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 1 1 M 1 |
| 1 2 M 2 |
| 1 3 M 3 |
| 2 1 F 1 |
| 2 2 F 2 |
| 2 3 F 3 |
| 3 1 M 1 |
| 3 2 M 2 |
| 3 3 M 3 |
| 4 1 F 1 |
| 4 2 F 2 |
| 4 3 F 3 |
| 5 1 M 1 |
| 5 2 M 2 |
| 5 3 M 3 |
| 6 1 F 1 |
| 6 2 F 2 |
| 6 3 F 3 |
| 7 1 M 1 |
| 7 2 M 2 |
| 7 3 M 3 |
| 8 1 F 1 |
| 8 2 F 2 |
| 8 3 F 3 |
| 9 1 M 1 |
| 9 2 M 2 |
| 9 3 M 3 |
| 10 1 F 1 |
| 10 2 F 2 |
| 10 3 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum,sex,RANK(workgroupnum , sex ASC) TD_RANK FROM TDemployee GROUP BY paygrade; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 1 3 M 1 |
| 1 2 M 2 |
| 1 1 M 3 |
| 2 3 F 1 |
| 2 2 F 2 |
| 2 1 F 3 |
| 3 3 M 1 |
| 3 2 M 2 |
| 3 1 M 3 |
| 4 3 F 1 |
| 4 2 F 2 |
| 4 1 F 3 |
| 5 3 M 1 |
| 5 2 M 2 |
| 5 1 M 3 |
| 6 3 F 1 |
| 6 2 F 2 |
| 6 1 F 3 |
| 7 3 M 1 |
| 7 2 M 2 |
| 7 1 M 3 |
| 8 3 F 1 |
| 8 2 F 2 |
| 8 1 F 3 |
| 9 3 M 1 |
| 9 2 M 2 |
| 9 1 M 3 |
| 10 3 F 1 |
| 10 2 F 2 |
| 10 1 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade,workgroupnum,sex,RANK(workgroupnum, sex) TD_RANK FROM TDemployee GROUP BY paygrade; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 1 3 M 1 |
| 1 2 M 2 |
| 1 1 M 3 |
| 2 3 F 1 |
| 2 2 F 2 |
| 2 1 F 3 |
| 3 3 M 1 |
| 3 2 M 2 |
| 3 1 M 3 |
| 4 3 F 1 |
| 4 2 F 2 |
| 4 1 F 3 |
| 5 3 M 1 |
| 5 2 M 2 |
| 5 1 M 3 |
| 6 3 F 1 |
| 6 2 F 2 |
| 6 1 F 3 |
| 7 3 M 1 |
| 7 2 M 2 |
| 7 1 M 3 |
| 8 3 F 1 |
| 8 2 F 2 |
| 8 1 F 3 |
| 9 3 M 1 |
| 9 2 M 2 |
| 9 1 M 3 |
| 10 3 F 1 |
| 10 2 F 2 |
| 10 1 F 3 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE WHEN workgroupnum=1 THEN 'x' WHEN workgroupnum=2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY sex; |
| |
| TRANS_COUNT_EXPR SEX TD_RANK |
| ---------------- --- -------------------- |
| |
| x F 1 |
| x F 1 |
| x F 1 |
| x F 1 |
| x F 1 |
| y F 6 |
| y F 6 |
| y F 6 |
| y F 6 |
| y F 6 |
| z F 11 |
| z F 11 |
| z F 11 |
| z F 11 |
| z F 11 |
| x M 1 |
| x M 1 |
| x M 1 |
| x M 1 |
| x M 1 |
| y M 6 |
| y M 6 |
| y M 6 |
| y M 6 |
| y M 6 |
| z M 11 |
| z M 11 |
| z M 11 |
| z M 11 |
| z M 11 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade, workgroupnum,RANK(workgroupnum ASC ) TD_RANK FROM TDemployee GROUP BY paygrade qualify RANK(workgroupnum ASC ) >1; |
| |
| PAYGRADE WORKGROUPNUM TD_RANK |
| ---------- ------------ -------------------- |
| |
| 1 2 2 |
| 1 3 3 |
| 2 2 2 |
| 2 3 3 |
| 3 2 2 |
| 3 3 3 |
| 4 2 2 |
| 4 3 3 |
| 5 2 2 |
| 5 3 3 |
| 6 2 2 |
| 6 3 3 |
| 7 2 2 |
| 7 3 3 |
| 8 2 2 |
| 8 3 3 |
| 9 2 2 |
| 9 3 3 |
| 10 2 2 |
| 10 3 3 |
| |
| --- 20 row(s) selected. |
| >> |
| >>-----QUALIFY |
| >> |
| >>SELECT workgroupnum, sex,RANK(workgroupnum, sex) TD_RANK FROM TDemployee GROUP BY paygrade qualify workgroupnum> 1 and rank(workgroupnum, sex)<200; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 M 1 |
| 2 M 2 |
| 3 F 1 |
| 2 F 2 |
| 3 M 1 |
| 2 M 2 |
| 3 F 1 |
| 2 F 2 |
| 3 M 1 |
| 2 M 2 |
| 3 F 1 |
| 2 F 2 |
| 3 M 1 |
| 2 M 2 |
| 3 F 1 |
| 2 F 2 |
| 3 M 1 |
| 2 M 2 |
| 3 F 1 |
| 2 F 2 |
| |
| --- 20 row(s) selected. |
| >> |
| >> |
| >>SELECT paygrade ,workgroupnum, sex, RANK(workgroupnum, sex) TD_RANK FROM TDemployee GROUP BY paygrade qualify paygrade> 1; |
| |
| PAYGRADE WORKGROUPNUM SEX TD_RANK |
| ---------- ------------ --- -------------------- |
| |
| 2 3 F 1 |
| 2 2 F 2 |
| 2 1 F 3 |
| 3 3 M 1 |
| 3 2 M 2 |
| 3 1 M 3 |
| 4 3 F 1 |
| 4 2 F 2 |
| 4 1 F 3 |
| 5 3 M 1 |
| 5 2 M 2 |
| 5 1 M 3 |
| 6 3 F 1 |
| 6 2 F 2 |
| 6 1 F 3 |
| 7 3 M 1 |
| 7 2 M 2 |
| 7 1 M 3 |
| 8 3 F 1 |
| 8 2 F 2 |
| 8 1 F 3 |
| 9 3 M 1 |
| 9 2 M 2 |
| 9 1 M 3 |
| 10 3 F 1 |
| 10 2 F 2 |
| 10 1 F 3 |
| |
| --- 27 row(s) selected. |
| >> |
| >> |
| >>SELECT workgroupnum, sex, RANK(workgroupnum, sex) TD_RANK FROM TDemployee GROUP BY paygrade qualify rank(workgroupnum, sex)<200 and paygrade >1; |
| |
| WORKGROUPNUM SEX TD_RANK |
| ------------ --- -------------------- |
| |
| 3 F 1 |
| 2 F 2 |
| 1 F 3 |
| 3 M 1 |
| 2 M 2 |
| 1 M 3 |
| 3 F 1 |
| 2 F 2 |
| 1 F 3 |
| 3 M 1 |
| 2 M 2 |
| 1 M 3 |
| 3 F 1 |
| 2 F 2 |
| 1 F 3 |
| 3 M 1 |
| 2 M 2 |
| 1 M 3 |
| 3 F 1 |
| 2 F 2 |
| 1 F 3 |
| 3 M 1 |
| 2 M 2 |
| 1 M 3 |
| 3 F 1 |
| 2 F 2 |
| 1 F 3 |
| |
| --- 27 row(s) selected. |
| >> |
| >>--TD rank in qualify clause but no TD Rank in select list |
| >> |
| >>SELECT paygrade, sex FROM TDemployee GROUP BY sex qualify RANK(paygrade)> 1; |
| |
| PAYGRADE SEX |
| ---------- --- |
| |
| 8 F |
| 8 F |
| 8 F |
| 6 F |
| 6 F |
| 6 F |
| 4 F |
| 4 F |
| 4 F |
| 2 F |
| 2 F |
| 2 F |
| 7 M |
| 7 M |
| 7 M |
| 5 M |
| 5 M |
| 5 M |
| 3 M |
| 3 M |
| 3 M |
| 1 M |
| 1 M |
| 1 M |
| |
| --- 24 row(s) selected. |
| >> |
| >>--TD RANK neither in qualify clause nor in select list |
| >> |
| >>SELECT paygrade, sex FROM TDemployee GROUP BY sex qualify paygrade> 1; |
| |
| *** ERROR[4363] Using Qualify clause without using rank function in the query is not allowed. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--qualify and devived table |
| >> |
| >>SELECT workgroupnum,paygrade, sum_annualsalary,Rank(sum_annualsalary) TD_RANK |
| +>FROM (SELECT workgroupnum,paygrade, SUM(annualsalary) sum_annualsalary,SUM(paygrade) as sum_paygrade FROM TDemployee GROUP BY workgroupnum,paygrade) T |
| +>GROUP BY workgroupnum |
| +>QUALIFY Rank(sum_annualsalary) >5 |
| +>ORDER BY 3 desc ,1,2; |
| |
| WORKGROUPNUM PAYGRADE SUM_ANNUALSALARY TD_RANK |
| ------------ ---------- -------------------- -------------------- |
| |
| 1 5 25000 6 |
| 2 5 25000 6 |
| 3 5 25000 6 |
| 1 4 24000 7 |
| 2 4 24000 7 |
| 3 4 24000 7 |
| 1 3 23000 8 |
| 2 3 23000 8 |
| 3 3 23000 8 |
| 1 2 22000 9 |
| 2 2 22000 9 |
| 3 2 22000 9 |
| 1 1 21000 10 |
| 2 1 21000 10 |
| 3 1 21000 10 |
| |
| --- 15 row(s) selected. |
| >> |
| >> |
| >>SELECT workgroupnum, sum_paygrade |
| +>FROM (SELECT workgroupnum, SUM(annualsalary) sum_annualsalary,SUM(paygrade) as sum_paygrade FROM TDemployee GROUP BY workgroupnum) T |
| +>GROUP BY workgroupnum |
| +>QUALIFY Rank(sum_paygrade) >2 |
| +>ORDER BY 2 DESC, 1; |
| |
| --- 0 row(s) selected. |
| >> |
| >> |
| >>---TD RANK , QUALIFY & WHERE |
| >>SELECT sex, CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee where num <> 1 |
| +>GROUP BY sex |
| +>QUALIFY RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) >1; |
| |
| SEX TRANS_COUNT_EXPR SEX TD_RANK |
| --- ---------------- --- -------------------- |
| |
| F y F 6 |
| F y F 6 |
| F y F 6 |
| F y F 6 |
| F y F 6 |
| F z F 11 |
| F z F 11 |
| F z F 11 |
| F z F 11 |
| F z F 11 |
| M y M 5 |
| M y M 5 |
| M y M 5 |
| M y M 5 |
| M y M 5 |
| M z M 10 |
| M z M 10 |
| M z M 10 |
| M z M 10 |
| M z M 10 |
| |
| --- 20 row(s) selected. |
| >> |
| >>-- Multiple TD Ranks & equivalent expressions |
| >>SELECT sex, CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END trans_count_expr, sex, |
| +> RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END ASC, sex) TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY sex |
| +>QUALIFY RANK(CASE workgroupnum WHEN 1 THEN 'x' WHEN 2 THEN 'y' ELSE 'z' END , sex) >1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, RANK(annualsalary) TD_RANK2 FROM TDemployee GROUP BY sex qualify rank(paygrade)> 1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT sex, paygrade, RANK(paygrade) TD_RANK2 FROM TDemployee GROUP BY sex qualify rank(paygrade)> 1; |
| |
| SEX PAYGRADE TD_RANK2 |
| --- ---------- -------------------- |
| |
| F 8 4 |
| F 8 4 |
| F 8 4 |
| F 6 7 |
| F 6 7 |
| F 6 7 |
| F 4 10 |
| F 4 10 |
| F 4 10 |
| F 2 13 |
| F 2 13 |
| F 2 13 |
| M 7 4 |
| M 7 4 |
| M 7 4 |
| M 5 7 |
| M 5 7 |
| M 5 7 |
| M 3 10 |
| M 3 10 |
| M 3 10 |
| M 1 13 |
| M 1 13 |
| M 1 13 |
| |
| --- 24 row(s) selected. |
| >> |
| >>SELECT sex,annualsalary/paygrade as A, RANK(annualsalary/paygrade) TD_RANK2 FROM TDemployee GROUP BY sex qualify rank(annualsalary/paygrade)> 1; |
| |
| SEX A TD_RANK2 |
| --- ---------------------- -------------------- |
| |
| F 6000.0000000000 4 |
| F 6000.0000000000 4 |
| F 6000.0000000000 4 |
| F 4333.3333333333 7 |
| F 4333.3333333333 7 |
| F 4333.3333333333 7 |
| F 3500.0000000000 10 |
| F 3500.0000000000 10 |
| F 3500.0000000000 10 |
| F 3000.0000000000 13 |
| F 3000.0000000000 13 |
| F 3000.0000000000 13 |
| M 7666.6666666666 4 |
| M 7666.6666666666 4 |
| M 7666.6666666666 4 |
| M 5000.0000000000 7 |
| M 5000.0000000000 7 |
| M 5000.0000000000 7 |
| M 3857.1428571428 10 |
| M 3857.1428571428 10 |
| M 3857.1428571428 10 |
| M 3222.2222222222 13 |
| M 3222.2222222222 13 |
| M 3222.2222222222 13 |
| |
| --- 24 row(s) selected. |
| >> |
| >>SELECT sex,annualsalary/cast(paygrade as DECIMAL(9,2)) as A, RANK(annualsalary/cast(paygrade as DECIMAL(9,2))) TD_RANK2 FROM TDemployee GROUP BY sex qualify rank(annualsalary/cast(paygrade as DECIMAL(9,2)))> 1; |
| |
| SEX A TD_RANK2 |
| --- --------------------- -------------------- |
| |
| F 6000.000000 4 |
| F 6000.000000 4 |
| F 6000.000000 4 |
| F 4333.333333 7 |
| F 4333.333333 7 |
| F 4333.333333 7 |
| F 3500.000000 10 |
| F 3500.000000 10 |
| F 3500.000000 10 |
| F 3000.000000 13 |
| F 3000.000000 13 |
| F 3000.000000 13 |
| M 7666.666666 4 |
| M 7666.666666 4 |
| M 7666.666666 4 |
| M 5000.000000 7 |
| M 5000.000000 7 |
| M 5000.000000 7 |
| M 3857.142857 10 |
| M 3857.142857 10 |
| M 3857.142857 10 |
| M 3222.222222 13 |
| M 3222.222222 13 |
| M 3222.222222 13 |
| |
| --- 24 row(s) selected. |
| >> |
| >>SELECT paygrade, RANK(paygrade +10 ) TD_RANK2 FROM TDemployee GROUP BY sex qualify rank(paygrade +10)> 1; |
| |
| PAYGRADE TD_RANK2 |
| ---------- -------------------- |
| |
| 8 4 |
| 8 4 |
| 8 4 |
| 6 7 |
| 6 7 |
| 6 7 |
| 4 10 |
| 4 10 |
| 4 10 |
| 2 13 |
| 2 13 |
| 2 13 |
| 7 4 |
| 7 4 |
| 7 4 |
| 5 7 |
| 5 7 |
| 5 7 |
| 3 10 |
| 3 10 |
| 3 10 |
| 1 13 |
| 1 13 |
| 1 13 |
| |
| --- 24 row(s) selected. |
| >> |
| >>SELECT paygrade, RANK(paygrade +10 ) TD_RANK2 FROM TDemployee GROUP BY sex qualify rank(paygrade +11)> 1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK1 FROM TDemployee GROUP BY workgroupnum qualify rank(paygrade, sex)<200; |
| |
| PAYGRADE SEX TD_RANK1 |
| ---------- --- -------------------- |
| |
| 10 F 1 |
| 9 M 2 |
| 8 F 3 |
| 7 M 4 |
| 6 F 5 |
| 5 M 6 |
| 4 F 7 |
| 3 M 8 |
| 2 F 9 |
| 1 M 10 |
| 10 F 1 |
| 9 M 2 |
| 8 F 3 |
| 7 M 4 |
| 6 F 5 |
| 5 M 6 |
| 4 F 7 |
| 3 M 8 |
| 2 F 9 |
| 1 M 10 |
| 10 F 1 |
| 9 M 2 |
| 8 F 3 |
| 7 M 4 |
| 6 F 5 |
| 5 M 6 |
| 4 F 7 |
| 3 M 8 |
| 2 F 9 |
| 1 M 10 |
| |
| --- 30 row(s) selected. |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK1 ,RANK(paygrade) TD_RANK2 FROM TDemployee GROUP BY workgroupnum qualify paygrade> 1 and rank(paygrade, sex)<200; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK FROM TDemployee GROUP BY workgroupnum qualify paygrade> 1 and rank(paygrade, sex asc)<200; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade, sex,RANK(paygrade, sex) TD_RANK FROM TDemployee GROUP BY sex,paygrade,workgroupnum qualify paygrade> 1 and rank(paygrade)<200; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>--TD rank & STRING Manipulation |
| >>SELECT substring(firstname, 1 ,4) sub_firstname, rank(substring(firstname, 1 ,4)) as TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY dateofbirth |
| +>QUALIFY rank(substring(firstname, 1 ,4)) >1; |
| |
| SUB_FIRSTNAME TD_RANK |
| ------------- -------------------- |
| |
| Alvi 2 |
| Anna 2 |
| Akih 2 |
| Abby 2 |
| Alan 2 |
| Amy 2 |
| Abel 2 |
| Adri 2 |
| Anto 2 |
| Alic 2 |
| Abe 2 |
| Aman 2 |
| |
| --- 12 row(s) selected. |
| >> |
| >>SELECT substring(firstname, 1 ,4) sub_firstname, rank(substring(firstname, 1 ,4)) as TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY sex |
| +>QUALIFY rank(substring(firstname, 1 ,2)) >1; |
| |
| *** ERROR[4361] All rank functions must use the same expression. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT UPPER(substring(firstname, 1 ,4)) up_sub_firstname , rank(UPPER(substring(firstname, 1 ,4))) as TD_RANK |
| +>FROM TDemployee |
| +>GROUP BY sex,paygrade |
| +>QUALIFY rank(UPPER(substring(firstname, 1 ,4))) >1; |
| |
| UP_SUB_FIRSTNAME TD_RANK |
| ---------------- -------------------- |
| |
| AMAN 3 |
| ANNE 2 |
| ABBY 3 |
| ANNE 2 |
| ANDR 3 |
| AMY 2 |
| ALIC 3 |
| ALIC 2 |
| ADRI 3 |
| ALVI 2 |
| ABE 3 |
| ALOY 3 |
| ALAN 2 |
| AKIH 3 |
| ARTH 2 |
| ABEL 3 |
| ARNO 2 |
| ANTO 3 |
| |
| --- 18 row(s) selected. |
| >> |
| >>-----TD and GROUP BY -- TD rank and aggregate functions are not-- need to add an error message |
| >> |
| >> |
| >>SELECT * FROM (SELECT num, paygrade,RANK(paygrade) r_paygrade FROM TDemployee GROUP BY sex) t1 join (SELECT num, workgroupnum, RANK(workgroupnum) r_workgroupnum FROM TDemployee GROUP BY sex) t2 on t1.num=t2.num order by t1.num; |
| |
| NUM PAYGRADE R_PAYGRADE NUM WORKGROUPNUM R_WORKGROUPNUM |
| ---------- ---------- -------------------- ---------- ------------ -------------------- |
| |
| 1 1 13 1 1 11 |
| 2 2 13 2 1 11 |
| 3 3 10 3 1 11 |
| 4 4 10 4 1 11 |
| 5 5 7 5 1 11 |
| 6 6 7 6 1 11 |
| 7 7 4 7 1 11 |
| 8 8 4 8 1 11 |
| 9 9 1 9 1 11 |
| 10 10 1 10 1 11 |
| 11 1 13 11 2 6 |
| 12 2 13 12 2 6 |
| 13 3 10 13 2 6 |
| 14 4 10 14 2 6 |
| 15 5 7 15 2 6 |
| 16 6 7 16 2 6 |
| 17 7 4 17 2 6 |
| 18 8 4 18 2 6 |
| 19 9 1 19 2 6 |
| 20 10 1 20 2 6 |
| 21 1 13 21 3 1 |
| 22 2 13 22 3 1 |
| 23 3 10 23 3 1 |
| 24 4 10 24 3 1 |
| 25 5 7 25 3 1 |
| 26 6 7 26 3 1 |
| 27 7 4 27 3 1 |
| 28 8 4 28 3 1 |
| 29 9 1 29 3 1 |
| 30 10 1 30 3 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >>------------------------------------------- |
| >>--NESTING TD rank functions |
| >> |
| >>SELECT RANK(1-RANK(paygrade)) FROM TDemployee ; |
| |
| *** ERROR[4368] Nesting rank functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(1-RANK(paygrade)) FROM TDemployee GROUP BY sex; |
| |
| *** ERROR[4368] Nesting rank functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(1-RANK(paygrade)) FROM TDemployee QUALIFY RANK(1-RANK(paygrade)) >1; |
| |
| *** ERROR[4368] Nesting rank functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT RANK(1-RANK(paygrade)) FROM TDemployee GROUP BY sex QUALIFY RANK(1-RANK(paygrade)) >1; |
| |
| *** ERROR[4368] Nesting rank functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade FROM TDemployee QUALIFY RANK(1-RANK(paygrade)) >1; |
| |
| *** ERROR[4368] Nesting rank functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>SELECT paygrade FROM TDemployee GROUP BY sex QUALIFY RANK(1-RANK(paygrade)) >1; |
| |
| *** ERROR[4368] Nesting rank functions is not supported. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >>------------------------------------------- |
| >>--testing rank with update/delete |
| >> |
| >> |
| >>create table TDemp_rank |
| +> ( |
| +> Num integer unsigned no default not null not droppable , |
| +> PayGrade integer unsigned no default not null not droppable , |
| +> AnnualSalary integer unsigned no default not null not droppable , |
| +> arank largeint no default not null not droppable , |
| +> primary key ( Num ) not droppable |
| +> ) |
| +> store by primary key; |
| |
| --- SQL operation complete. |
| >> |
| >>INSERT INTO TDemp_rank SELECT Num, paygrade, AnnualSalary,rank(annualsalary) FROM TDemployee ; |
| |
| --- 30 row(s) inserted. |
| >> |
| >> |
| >>UPDATE TDemp_rank SET arank = rank(annualsalary); |
| |
| *** ERROR[15001] A syntax error occurred at or before: |
| UPDATE TDemp_rank SET arank = rank(annualsalary); |
| ^ (48 characters from start of SQL statement) |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>DELETE FROM TDemp_rank WHERE rank(annualsalary)=1; |
| |
| *** ERROR[15001] A syntax error occurred at or before: |
| DELETE FROM TDemp_rank WHERE rank(annualsalary)=1; |
| ^ (48 characters from start of SQL statement) |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>------------------Qualify clause with exists and in predicates --- semi join |
| >> |
| >>select annualsalary,rank(annualsalary) from tdemployee |
| +>qualify exists (select num from tdemployee where num =1 ) and rank(annualsalary) in (1,7,10); |
| |
| ANNUALSALARY (EXPR) |
| ------------ -------------------- |
| |
| 30000 1 |
| 30000 1 |
| 30000 1 |
| 28000 7 |
| 28000 7 |
| 28000 7 |
| 27000 10 |
| 27000 10 |
| 27000 10 |
| |
| --- 9 row(s) selected. |
| >> |
| >>select sex, annualsalary,rank(annualsalary) from tdemployee |
| +>group by sex |
| +>qualify exists (select num from tdemployee where num =1 ) and rank(annualsalary) in (1,7,10); |
| |
| SEX ANNUALSALARY (EXPR) |
| --- ------------ -------------------- |
| |
| F 30000 1 |
| F 30000 1 |
| F 30000 1 |
| F 26000 7 |
| F 26000 7 |
| F 26000 7 |
| F 24000 10 |
| F 24000 10 |
| F 24000 10 |
| M 29000 1 |
| M 29000 1 |
| M 29000 1 |
| M 25000 7 |
| M 25000 7 |
| M 25000 7 |
| M 23000 10 |
| M 23000 10 |
| M 23000 10 |
| |
| --- 18 row(s) selected. |
| >> |
| >>----------------------outer references and parameters |
| >>set param ?p 2; |
| >>select rank(annualsalary + ?p) from tdemployee; |
| |
| *** ERROR[4369] Parameters and outer references are not supported with rank function. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >>select num,( select rank(o.num) from tdemployee i where i.num=1) |
| +>from tdemployee o; |
| |
| *** ERROR[4369] Parameters and outer references are not supported with rank function. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>-------------------NULL ORDERING |
| >> |
| >> |
| >>CREATE TABLE nulltest |
| +> ( vch7 varchar(7) |
| +> , nint integer not null |
| +> , nint2 integer |
| +> , ch3 char(3) |
| +> , nnum9 numeric(9,2) |
| +> , ch4 char(4) |
| +> , nnum5 numeric(5,1) |
| +> , vch5 varchar(5) |
| +> , nsint smallint |
| +> ) store by (nint); |
| |
| --- SQL operation complete. |
| >> |
| >> |
| >>INSERT INTO nulltest VALUES ('a', 1, NULL, 'c' , 0.9, NULL , NULL , NULL, 0); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES ('a', 1, 2, 'c' , 0.9, '' , NULL , NULL, 0); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES ('cc' , 2, 5, 'cc', 2.00, 'cc', 2.0 , 'cc', 2); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES ('abcdefg', 3, NULL, 'cc', 0.09, 'alph', 2 , 'cc', 1); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES ('b', 4, 10, 'c' , 1234567.89, 'e' , 1234.5, 'c' , 12345); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES ('abcdefg', 5, 15, 'cc', 0.09, 'cc', 2 , 'cc', 2); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES (NULL, 5, NULL, 'cc', 0.09, 'cc', 2 , 'cc', 2); |
| |
| --- 1 row(s) inserted. |
| >>INSERT INTO nulltest VALUES (NULL, 7, NULL, 'cd', 0.10, 'cd', 2 , 'cc', 2); |
| |
| --- 1 row(s) inserted. |
| >> |
| >> |
| >>SELECT vch7, nint, nint2, rank (vch7, nint, nint2) r from nulltest; |
| |
| VCH7 NINT NINT2 R |
| ------- ----------- ----------- -------------------- |
| |
| cc 2 5 1 |
| b 4 10 2 |
| abcdefg 5 15 3 |
| abcdefg 3 ? 4 |
| a 1 2 5 |
| a 1 ? 6 |
| ? 7 ? 7 |
| ? 5 ? 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch7, nint, nint2, rank (vch7 ASC, nint ASC, nint2 ASC) r from nulltest; |
| |
| VCH7 NINT NINT2 R |
| ------- ----------- ----------- -------------------- |
| |
| ? 5 ? 1 |
| ? 7 ? 2 |
| a 1 ? 3 |
| a 1 2 4 |
| abcdefg 3 ? 5 |
| abcdefg 5 15 6 |
| b 4 10 7 |
| cc 2 5 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT nnum9, vch5, nsint, rank (nnum9, vch5, nsint) r from nulltest; |
| |
| NNUM9 VCH5 NSINT R |
| ------------ ----- ------ -------------------- |
| |
| 1234567.89 c 12345 1 |
| 2.00 cc 2 2 |
| .90 ? 0 3 |
| .90 ? 0 3 |
| .10 cc 2 5 |
| .09 cc 2 6 |
| .09 cc 2 6 |
| .09 cc 1 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT nnum9, vch5, nsint, rank (nnum9 ASC, vch5 ASC, nsint ASC) r from nulltest; |
| |
| NNUM9 VCH5 NSINT R |
| ------------ ----- ------ -------------------- |
| |
| .09 cc 1 1 |
| .09 cc 2 2 |
| .09 cc 2 2 |
| .10 cc 2 4 |
| .90 ? 0 5 |
| .90 ? 0 5 |
| 2.00 cc 2 7 |
| 1234567.89 c 12345 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT rank (vch7, nint, nint2) r from nulltest; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT rank (nnum9 ) r from nulltest; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 3 |
| 5 |
| 6 |
| 6 |
| 6 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT rank (nnum5 ) r from nulltest; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 2 |
| 2 |
| 2 |
| 2 |
| 7 |
| 7 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT rank ( vch5) r from nulltest; |
| |
| R |
| -------------------- |
| |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 6 |
| 7 |
| 7 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT rank ( vch5) r from nulltest QUALIFY rank ( vch5) >1; |
| |
| R |
| -------------------- |
| |
| 6 |
| 7 |
| 7 |
| |
| --- 3 row(s) selected. |
| >> |
| >>SELECT rank (vch7, nint, nint2) r from nulltest QUALIFY rank (vch7, nint, nint2) <10; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>SELECT |
| +>CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END A, |
| +>RANK(CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END) r |
| +>FROM nulltest; |
| |
| A R |
| ----------- -------------------- |
| |
| 2 1 |
| ? 2 |
| ? 2 |
| ? 2 |
| ? 2 |
| ? 2 |
| ? 2 |
| ? 2 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>SELECT |
| +>CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END A, |
| +>RANK(CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END ASC) r |
| +>FROM nulltest; |
| |
| A R |
| ----------- -------------------- |
| |
| ? 1 |
| ? 1 |
| ? 1 |
| ? 1 |
| ? 1 |
| ? 1 |
| ? 1 |
| 2 8 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>SELECT nint+ nint2 a ,RANK(nint + nint2) r FROM nulltest; |
| |
| A R |
| -------------------- -------------------- |
| |
| 20 1 |
| 14 2 |
| 7 3 |
| 3 4 |
| ? 5 |
| ? 5 |
| ? 5 |
| ? 5 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT RANK(SUBSTRING(VCH7, 1,2)) r FROM nulltest; |
| |
| R |
| -------------------- |
| |
| 1 |
| 2 |
| 3 |
| 3 |
| 5 |
| 5 |
| 7 |
| 7 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>--- nullordering with group by |
| >> |
| >>SELECT vch5,vch7, nint, nint2, rank (vch7 ASC, nint ASC, nint2 ASC) r from nulltest GROUP BY vch5; |
| |
| VCH5 VCH7 NINT NINT2 R |
| ----- ------- ----------- ----------- -------------------- |
| |
| ? a 1 ? 1 |
| ? a 1 2 2 |
| c b 4 10 1 |
| cc ? 5 ? 1 |
| cc ? 7 ? 2 |
| cc abcdefg 3 ? 3 |
| cc abcdefg 5 15 4 |
| cc cc 2 5 5 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch7,nnum9, vch5, nsint, rank (nnum9, vch5, nsint) r from nulltest group by nint2,vch7; |
| |
| VCH7 NNUM9 VCH5 NSINT R |
| ------- ------------ ----- ------ -------------------- |
| |
| ? .10 cc 2 1 |
| ? .09 cc 2 2 |
| a .90 ? 0 1 |
| abcdefg .09 cc 1 1 |
| a .90 ? 0 1 |
| cc 2.00 cc 2 1 |
| b 1234567.89 c 12345 1 |
| abcdefg .09 cc 2 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch7,nnum9, vch5, nsint, rank (nnum9 ASC, vch5 ASC, nsint ASC) r from nulltest group by vch7; |
| |
| VCH7 NNUM9 VCH5 NSINT R |
| ------- ------------ ----- ------ -------------------- |
| |
| ? .09 cc 2 1 |
| ? .10 cc 2 2 |
| a .90 ? 0 1 |
| a .90 ? 0 1 |
| abcdefg .09 cc 1 1 |
| abcdefg .09 cc 2 2 |
| b 1234567.89 c 12345 1 |
| cc 2.00 cc 2 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT nnum5,rank (vch7, nint, nint2) r from nulltest group by nnum5; |
| |
| NNUM5 R |
| ------------ -------------------- |
| |
| ? 1 |
| ? 2 |
| 2.0 1 |
| 2.0 2 |
| 2.0 3 |
| 2.0 4 |
| 2.0 5 |
| 1234.5 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT nnum5,rank (nnum9 ) r from nulltest group by nnum5; |
| |
| NNUM5 R |
| ------------ -------------------- |
| |
| ? 1 |
| ? 1 |
| 2.0 1 |
| 2.0 2 |
| 2.0 3 |
| 2.0 3 |
| 2.0 3 |
| 1234.5 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch7,rank (nnum5 ) r from nulltest group by vch7; |
| |
| VCH7 R |
| ------- -------------------- |
| |
| ? 1 |
| ? 1 |
| a 1 |
| a 1 |
| abcdefg 1 |
| abcdefg 1 |
| b 1 |
| cc 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch7,rank ( vch5) r from nulltest group by vch7; |
| |
| VCH7 R |
| ------- -------------------- |
| |
| ? 1 |
| ? 1 |
| a 1 |
| a 1 |
| abcdefg 1 |
| abcdefg 1 |
| b 1 |
| cc 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch7,rank ( vch5) r from nulltest group by vch7 QUALIFY rank ( vch5) >1; |
| |
| --- 0 row(s) selected. |
| >> |
| >>SELECT vch5,rank (vch7, nint, nint2) r from nulltest group by vch5 QUALIFY rank (vch7, nint, nint2) <10; |
| |
| VCH5 R |
| ----- -------------------- |
| |
| ? 1 |
| ? 2 |
| c 1 |
| cc 1 |
| cc 2 |
| cc 3 |
| cc 4 |
| cc 5 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>SELECT vch5, |
| +>CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END A, |
| +>RANK(CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END) r |
| +>FROM nulltest |
| +>group by vch5 |
| +>QUALIFY RANK(CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END)<10; |
| |
| VCH5 A R |
| ----- ----------- -------------------- |
| |
| ? 2 1 |
| ? ? 2 |
| c ? 1 |
| cc ? 1 |
| cc ? 1 |
| cc ? 1 |
| cc ? 1 |
| cc ? 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>SELECT vch5, |
| +>CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END A, |
| +>RANK(CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END ASC) r |
| +>FROM nulltest |
| +>group by vch5 |
| +>QUALIFY RANK(CASE WHEN nint=1 THEN nint2 WHEN nnum9 >= 1 THEN NULL WHEN VCH5 IS NULL THEN nsint ELSE NULL END ASC)<10; |
| |
| VCH5 A R |
| ----- ----------- -------------------- |
| |
| ? ? 1 |
| ? 2 2 |
| c ? 1 |
| cc ? 1 |
| cc ? 1 |
| cc ? 1 |
| cc ? 1 |
| cc ? 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >> |
| >>SELECT vch7,nint+ nint2 a ,RANK(nint + nint2) r FROM nulltest GROUP BY vch7; |
| |
| VCH7 A R |
| ------- -------------------- -------------------- |
| |
| ? ? 1 |
| ? ? 1 |
| a 3 1 |
| a ? 2 |
| abcdefg 20 1 |
| abcdefg ? 2 |
| b 14 1 |
| cc 7 1 |
| |
| --- 8 row(s) selected. |
| >> |
| >>SELECT vch5,RANK(SUBSTRING(VCH7, 1,2)) r FROM nulltest GROUP BY vch5; |
| |
| VCH5 R |
| ----- -------------------- |
| |
| ? 1 |
| ? 1 |
| c 1 |
| cc 1 |
| cc 2 |
| cc 2 |
| cc 4 |
| cc 4 |
| |
| --- 8 row(s) selected. |
| >> |
| >>--more than 2 items in group by list / group by with ordinals |
| >> |
| >>SELECT workgroupnum,sex,paygrade,annualsalary,RANK(workgroupnum,sex,paygrade,annualsalary) TD_RANK1 |
| +>FROM TDemployee |
| +>GROUP BY middleinitial,lastname,firstname; |
| |
| WORKGROUPNUM SEX PAYGRADE ANNUALSALARY TD_RANK1 |
| ------------ --- ---------- ------------ -------------------- |
| |
| 1 F 4 24000 1 |
| 2 M 1 21000 1 |
| 1 M 7 27000 1 |
| 2 F 10 30000 1 |
| 2 M 5 25000 1 |
| 1 M 5 25000 1 |
| 1 F 8 28000 1 |
| 1 F 10 30000 1 |
| 1 M 3 23000 1 |
| 1 M 1 21000 1 |
| 2 F 2 22000 1 |
| 2 F 8 28000 1 |
| 2 F 6 26000 1 |
| 3 M 3 23000 1 |
| 2 M 3 23000 1 |
| 1 F 2 22000 1 |
| 3 F 2 22000 1 |
| 1 F 6 26000 1 |
| 2 F 4 24000 1 |
| 1 M 9 29000 1 |
| 2 M 9 29000 1 |
| 2 M 7 27000 1 |
| 3 M 1 21000 1 |
| 3 F 4 24000 1 |
| 3 F 8 28000 1 |
| 3 F 6 26000 1 |
| 3 M 5 25000 1 |
| 3 M 7 27000 1 |
| 3 F 10 30000 1 |
| 3 M 9 29000 1 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >> |
| >>SELECT middleinitial,lastname,sex,workgroupnum,RANK(annualsalary) TD_RANK1 |
| +>FROM TDemployee |
| +>GROUP BY middleinitial,lastname,sex,workgroupnum; |
| |
| MIDDLEINITIAL LASTNAME SEX WORKGROUPNUM TD_RANK1 |
| ------------- ------------------------ --- ------------ -------------------- |
| |
| A Anderson F 1 1 |
| A Anderson F 1 2 |
| A Anderson F 1 3 |
| A Anderson F 1 4 |
| A Anderson F 1 5 |
| A Anderson F 2 1 |
| A Anderson F 2 2 |
| A Anderson F 2 3 |
| A Anderson F 2 4 |
| A Anderson F 2 5 |
| A Anderson F 3 1 |
| A Anderson F 3 2 |
| A Anderson F 3 3 |
| A Anderson F 3 4 |
| A Anderson F 3 5 |
| A Anderson M 1 1 |
| A Anderson M 1 2 |
| A Anderson M 1 3 |
| A Anderson M 1 4 |
| A Anderson M 1 5 |
| A Anderson M 2 1 |
| A Anderson M 2 2 |
| A Anderson M 2 3 |
| A Anderson M 2 4 |
| A Anderson M 2 5 |
| A Anderson M 3 1 |
| A Anderson M 3 2 |
| A Anderson M 3 3 |
| A Anderson M 3 4 |
| A Anderson M 3 5 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>SELECT RANK(annualsalary) TD_RANK1 |
| +>FROM TDemployee |
| +>GROUP BY 1,lastname,sex,workgroupnum; |
| |
| *** ERROR[4364] Rank can be placed only in the select list or the qualify clause. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >> |
| >> |
| >>SELECT middleinitial,lastname,sex,workgroupnum,RANK(annualsalary) TD_RANK1 |
| +>FROM TDemployee |
| +>GROUP BY 1,2,sex,workgroupnum; |
| |
| MIDDLEINITIAL LASTNAME SEX WORKGROUPNUM TD_RANK1 |
| ------------- ------------------------ --- ------------ -------------------- |
| |
| A Anderson F 1 1 |
| A Anderson F 1 2 |
| A Anderson F 1 3 |
| A Anderson F 1 4 |
| A Anderson F 1 5 |
| A Anderson F 2 1 |
| A Anderson F 2 2 |
| A Anderson F 2 3 |
| A Anderson F 2 4 |
| A Anderson F 2 5 |
| A Anderson F 3 1 |
| A Anderson F 3 2 |
| A Anderson F 3 3 |
| A Anderson F 3 4 |
| A Anderson F 3 5 |
| A Anderson M 1 1 |
| A Anderson M 1 2 |
| A Anderson M 1 3 |
| A Anderson M 1 4 |
| A Anderson M 1 5 |
| A Anderson M 2 1 |
| A Anderson M 2 2 |
| A Anderson M 2 3 |
| A Anderson M 2 4 |
| A Anderson M 2 5 |
| A Anderson M 3 1 |
| A Anderson M 3 2 |
| A Anderson M 3 3 |
| A Anderson M 3 4 |
| A Anderson M 3 5 |
| |
| --- 30 row(s) selected. |
| >> |
| >> |
| >>SELECT middleinitial,lastname,sex,workgroupnum,RANK(annualsalary) TD_RANK1 |
| +>FROM TDemployee |
| +>GROUP BY 8,2,sex,workgroupnum; |
| |
| *** ERROR[4366] Invalid Select list index. |
| |
| *** ERROR[8822] The statement was not prepared. |
| |
| >> |
| >>CONTROL QUERY DEFAULT COMP_BOOL_200 'OFF'; |
| |
| --- SQL operation complete. |
| >> |
| >>log ; |