1

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

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

所以输入应该是视图名称,输出应该是两行,如:

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

2 回答 2

2

您需要将COUNT()聚合函数)与Distinct一起使用以仅计算唯一值。

SELECT  [column], COUNT(DISTINCT value) [Uniques]
FROM    tableName
GROUP   BY [column]
于 2013-03-30T06:25:12.673 回答
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]
于 2013-03-30T07:14:10.057 回答