APPROXIMATE_COUNT_DISTINCT_OF_SYNOPSIS
从由 APPROXIMATE_COUNT_DISTINCT_SYNOPSIS 创建的概要对象中计算不同的非 NULL 值的数量。
行为类型
不可变语法
APPROXIMATE_COUNT_DISTINCT_OF_SYNOPSIS ( synopsis-obj[, error-tolerance ] )
参数
- synopsis‑obj
- APPROXIMATE_COUNT_DISTINCT_SYNOPSIS 创建的概要对象。
- error‑tolerance
表示所需容错百分比的数字值,分布在此函数返回的值周围。容错值越小,近似值越接近实际值。
您可以将
error‑tolerance
设置为最小值 0.88。Vertica 不实施最大值限制,但大于 5 的任何值都以 5% 的容错实现。如果省略此实参,则 Vertica 将使用 1.25(%) 的容错率。
有关更多详细信息,请参阅 APPROXIMATE_COUNT_DISTINCT。
限制
APPROXIMATE_COUNT_DISTINCT_OF_SYNOPSIS 和 DISTINCT 聚合不能在同一查询块中。
示例
下例查看并比较获得表列中唯一值的数量的不同方法:
返回表 store.store_sales_fact
的 product_key 列中唯一值的确切数量:
=> \timing
Timing is on.
=> SELECT COUNT(DISTINCT product_key) from store.store_sales_fact;
count
-------
19982
(1 row)
Time: First fetch (1 row): 553.033 ms. All rows formatted: 553.075 ms
返回 product_key
列中唯一值的近似数量:
=> SELECT APPROXIMATE_COUNT_DISTINCT(product_key) as unique_product_keys
FROM store.store_sales_fact;
unique_product_keys
---------------------
19921
(1 row)
Time: First fetch (1 row): 394.562 ms. All rows formatted: 394.600 ms
创建一个表示一组具有唯一 product_key
值的 store.store_sales_fact
数据的概要对象,将概要存储在新表 my_summary
中:
=> CREATE TABLE my_summary AS SELECT APPROXIMATE_COUNT_DISTINCT_SYNOPSIS (product_key) syn
FROM store.store_sales_fact;
CREATE TABLE
Time: First fetch (0 rows): 582.662 ms. All rows formatted: 582.682 ms
从保存的概要返回数量:
=> SELECT APPROXIMATE_COUNT_DISTINCT_OF_SYNOPSIS(syn) FROM my_summary;
ApproxCountDistinctOfSynopsis
-------------------------------
19921
(1 row)
Time: First fetch (1 row): 105.295 ms. All rows formatted: 105.335 ms