W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
APPROX_COUNT_DISTINCT
函數(shù)是聚合函數(shù),它對某一列去重后的行數(shù)進(jìn)行計算,結(jié)果只能返回一個值,且該值是近似值,該函數(shù)可以進(jìn)一步用于計算被引用的列的選擇性。
與函數(shù) COUNT(DISTINCT x)
相比,APPROX_COUNT_DISTINCT
返回的是近似值,所以計算速度極快。在處理大量級的數(shù)據(jù)時 COUNT(DISTINCT x)
經(jīng)常要花費很長的時間,使用 APPROX_COUNT_DISTINCT
犧牲了少量的精確度,卻換來了計算效率的極大提升。
APPROX_COUNT_DISTINCT(expr)
參數(shù) |
說明 |
---|---|
expr |
數(shù)值列。 |
返回 NUMBER
類型數(shù)據(jù)。
以下語句創(chuàng)建了表 employees,并向里面插入數(shù)據(jù):
CREATE TABLE employees (manager_id INT,last_name varchar(50),hiredate varchar(50),SALARY INT);
INSERT INTO employees VALUES(100, 'Raphaely', '2017-07-01', 1700);
INSERT INTO employees VALUES(100, 'De Haan', '2018-05-01',11000);
INSERT INTO employees VALUES(100, 'Errazuriz', '2017-07-21', 1400);
INSERT INTO employees VALUES(100, 'Hartstein', '2019-05-01',14000);
INSERT INTO employees VALUES(100, 'Raphaely', '2017-07-22', 1700);
INSERT INTO employees VALUES(100, 'Weiss', '2019-07-11',13500);
INSERT INTO employees VALUES(100, 'Russell', '2019-10-05', 13000);
INSERT INTO employees VALUES(100, 'Partners', '2018-12-01',14000);
INSERT INTO employees VALUES(200, 'Ross', '2019-06-11',13500);
INSERT INTO employees VALUES(200, 'Bell', '2019-05-25', 13000);
INSERT INTO employees VALUES(200, 'Part', '2018-08-11',14000);
COMMIT;
執(zhí)行以下語句:
SELECT last_name, salary, APPROX_COUNT_DISTINCT(salary) OVER (ORDER BY hiredate) "Variance"
FROM employees WHERE manager_id = 100 ORDER BY last_name, salary, "Variance";
查詢結(jié)果如下:
+-----------+--------+----------+
| LAST_NAME | SALARY | Variance |
+-----------+--------+----------+
| De Haan | 11000 | 3 |
| Errazuriz | 1400 | 2 |
| Hartstein | 14000 | 4 |
| Partners | 14000 | 4 |
| Raphaely | 1700 | 1 |
| Raphaely | 1700 | 2 |
| Russell | 13000 | 6 |
| Weiss | 13500 | 5 |
+-----------+--------+----------+
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: