SQL Server:获取大视图中每列的独特计数

时间:2013-03-30 06:23:05

标签: sql tsql sql-server-2012

我有一个庞大的SQL Server 2012数据库,其中包含一些我需要分析的视图。

我想知道的每个视图是视图中每列的唯一值的数量。我找不到任何会给我这个的脚本。

因此输入应该是视图名称,输出将是两行,如:

Column         Uniques
accountid      200
accountname    178
numberofemp     23
telephone      154
notusedyet       0

2 个答案:

答案 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]