我有一个大型 SQL Server 2012 数据库,其中包含需要分析的几个视图。
对于每个视图,我想知道的是视图中每一列的唯一值的数量。我找不到任何可以给我这个的脚本。
所以输入应该是视图名称,输出应该是两行,如:
Column Uniques
accountid 200
accountname 178
numberofemp 23
telephone 154
notusedyet 0
我有一个大型 SQL Server 2012 数据库,其中包含需要分析的几个视图。
对于每个视图,我想知道的是视图中每一列的唯一值的数量。我找不到任何可以给我这个的脚本。
所以输入应该是视图名称,输出应该是两行,如:
Column Uniques
accountid 200
accountname 178
numberofemp 23
telephone 154
notusedyet 0
您需要将COUNT()
(聚合函数)与Distinct一起使用以仅计算唯一值。
SELECT [column], COUNT(DISTINCT value) [Uniques]
FROM tableName
GROUP BY [column]
count(distinct [ColA])
通过您要计算的每一列(否group by
)为每一列获取不同的计数。然后,您可以取消透视以获得所需的表格格式。这是一个例子:
;with DistinctColumnCount( Id, Description )
as
(
select
count(distinct Id) Id
, count(distinct Description) Description
from
EntityB
)
SELECT CountColumn, [Count].[DistinctCount]
FROM
DistinctColumnCount
unpivot
( DistinctCount for CountColumn in ( Id, [Description] ) ) as [Count]