forked from hanaboy/SQL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathORDER BY In Aggregate Functions
55 lines (50 loc) · 1.75 KB
/
ORDER BY In Aggregate Functions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-- this syntax is used for testing the ORDER BY clause in SAP HANA Aggregate Functions
CREATE COLUMN TABLE DEVTEST.MYEMPLOYEES
(
EMPID INTEGER,
EMP VARCHAR(20),
ROLE VARCHAR(20),
SALARY INTEGER
);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(1,'Christiano','Manager',500000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(2,'Eric','Manager',350000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(3,'Ryan','Director',450000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(4,'Bryan','Director',155000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(5,'Doreen','Manager',510000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(6,'Gabriel','Manager',355000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(7,'Angel','Director',450000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(8,'Robin','Director',150000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(9,'Sarah','Manager',520000);
INSERT INTO DEVTEST.MYEMPLOYEES VALUES(10,'Peter','Manager',350000);
SELECT
'ORIG ORDER' AS ORDER_BY,
STRING_AGG(EMP, '|') AS EMP_NAMES,
STRING_AGG(SALARY, '|') AS SALARIES
FROM "DEVTEST"."MYEMPLOYEES"
UNION
SELECT
'EMP NAME ASC' AS ORDER_BY,
STRING_AGG(EMP, '|' ORDER BY EMP) AS EMP_NAMES,
STRING_AGG(SALARY, '|' ORDER BY EMP) AS SALARIES
FROM "DEVTEST"."MYEMPLOYEES"
UNION
SELECT
'SALARY DESC' AS ORDER_BY,
STRING_AGG(EMP, '|' ORDER BY SALARY DESC) AS EMP_NAMES,
STRING_AGG(SALARY, '|' ORDER BY SALARY DESC) AS SALARIES
FROM "DEVTEST"."MYEMPLOYEES";
SELECT
NTH_VALUE(EMP||'@'||SALARY, 2 ORDER BY SALARY DESC) AS SALARY_SECOND,
NTH_VALUE(EMP||'@'||SALARY, 2 ORDER BY SALARY ASC) AS SALARY_PENULTIMATE
FROM "DEVTEST"."MYEMPLOYEES";
-- currently there is support for ORDER BY in these Aggregate Functions
-- AUTO_CORR
-- CORR
-- CORR_SPEARMAN
-- CROSS_CORR
-- DFT
-- FIRST_VALUE
-- LAST_VALUE
-- MEDIAN
-- NTH_VALUE
-- STRING_AGG