SQL APPROX_COUNT_DISTINCT() 函数
SQL的APPROX_COUNT_DISTINCT()函数返回具有不同表达式值的行的近似数量。该函数提供了COUNT(DISTINCT expression)函数的替代方法。该函数使用的内存较少,操作更高效。这是SQL Server 2019引入的新函数之一。
APPROX_COUNT_DISTINCT()函数主要用于大数据场景。该函数返回一个组中唯一非空值的数量。它通常用于具有超过一百万行和许多不同值的列的大型数据集的聚合。它专为优先响应性而不是绝对清晰度的情况而设计。该函数忽略包含空值的行。
语法
以下是 SQL APPROX_COUNT_DISTINCT() 函数的语法−
参数
- expression −任意类型的表达式。此函数不接受图像、sql_variant或文本。
示例
在下面的示例中,我们使用APPROC_COUNT_DISTINCT()函数从customers表中获取列”AGE”中值的近似数量。假设我们使用以下查询创建了一个名为customers的表−
表格存储了ID、NAME、AGE、ADDRESS和SALARY。现在我们正在使用INSERT语句向customers表中插入7条记录。
以下SQL查询显示客户的不同年龄近似数量:
输出
下面是上述SQL查询的输出结果 –
示例
在下面的示例中,使用APPROX_COUNT_DISTINCT()函数和GROUP BY子句在customers表上。它获取所有的名称并计算不同年龄值的数量 –
输出
以下是上述SQL查询的输出结果。在客户表中,存在多个年龄相同的姓名,但是APPROX_COUNT_DISTINCT()函数只计算不同值的个数−
示例
在下面的示例中,我们获取ID和薪水,并使用APPROX_COUNT_DISTINCT()函数来计算不重复的薪水数量。显示ID和薪水,还包括”group by”和”order by”子句。
下面的SQL查询将从上面的客户表中获取ID,薪水和薪水数量。
输出
以下是上述SQL查询的输出结果 –