1

分析する必要があるいくつかのビューを持つ大規模な SQL Server 2012 データベースがあります。

ビューごとに知りたいのは、ビュー内の各列の一意の値の数です。これを実現するスクリプトはまだ見つかりませんでした。

したがって、入力はビュー名である必要があり、出力は次のような 2 つの行になります。

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

2 に答える 2

2

一意の値のみをカウントするには、DistinctCOUNT()で(集計関数)を使用する必要があります。

SELECT  [column], COUNT(DISTINCT value) [Uniques]
FROM    tableName
GROUP   BY [column]
于 2013-03-30T06:25:12.673 に答える
2

カウントしたい各列を介して、各列の個別のカウントを取得count(distinct [ColA])します (no 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 に答える