中位數函式:MEDIAN
使用表示式:MEDIAN ( expression ) OVER ( [ window‑partition‑clause ] )
準備測試資料:
CREATE TABLE allsales(state VARCHAR(20), name VARCHAR(20), sales INT); INSERT INTO allsales VALUES('MA', 'A', 60); INSERT INTO allsales VALUES('NY', 'B', 20); INSERT INTO allsales VALUES('NY', 'C', 15); INSERT INTO allsales VALUES('MA', 'D', 20); INSERT INTO allsales VALUES('MA', 'E', 50); INSERT INTO allsales VALUES('NY', 'F', 40); INSERT INTO allsales VALUES('MA', 'G', 10); COMMIT;
最簡單的用法:
=> SELECT name, sales, MEDIAN(sales) OVER() AS median FROM allsales; name | sales | median ------+-------+-------- G | 10 | 20 C | 15 | 20 D | 20 | 20 B | 20 | 20 F | 40 | 20 E | 50 | 20 A | 60 | 20
可以按照指定欄位分組,顯示所在分組的中位數,如下:
=> SELECT state, name, sales, MEDIAN(sales) OVER(partition by state) AS median FROM allsales; state | name | sales | median -------+------+-------+-------- MA | G | 10 | 35 MA | D | 20 | 35 MA | E | 50 | 35 MA | A | 60 | 35 NY | C | 15 | 20 NY | B | 20 | 20 NY | F | 40 | 20
官方文件: