我有一个庞大的SQL Server 2012数据库,其中包含一些我需要分析的视图。
我想知道的每个视图是视图中每列的唯一值的数量。我找不到任何会给我这个的脚本。
因此输入应该是视图名称,输出将是两行,如:
Column Uniques
accountid 200
accountname 178
numberofemp 23
telephone 154
notusedyet 0
答案 0 :(得分:2)
您需要使用 Distinct 的COUNT()
(聚合函数)来仅计算唯一值。
SELECT [column], COUNT(DISTINCT value) [Uniques]
FROM tableName
GROUP BY [column]
答案 1 :(得分:2)
通过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]