Sql 如何计算表中每列中的所有不同值

Sql 如何计算表中每列中的所有不同值,sql,distinct-values,Sql,Distinct Values,我想创建一个满足以下条件的查询: 它统计每列的不同值的数量 它选择具有最多不同值的前三列 它统计前三列的幂集中包含的不同值的数量 到目前为止,我得到的是: SELECT TOP(3) COUNT(DISTINCT column_name) AS some_alias FROM tablename GROUP BY ~ ORDER BY count(*) asc 我的查询有什么问题?在子查询中使用distinct值,然后在select查询中使用count,如下所示 SELECT col

我想创建一个满足以下条件的查询:

  • 它统计每列的不同值的数量
  • 它选择具有最多不同值的前三列
  • 它统计前三列的幂集中包含的不同值的数量
  • 到目前为止,我得到的是:

    SELECT TOP(3) COUNT(DISTINCT column_name) AS some_alias FROM tablename 
        GROUP BY ~ ORDER BY count(*) asc
    

    我的查询有什么问题?

    在子查询中使用distinct值,然后在select查询中使用count,如下所示

    SELECT columnName,
       COUNT(col1) AS Col,
       COUNT(col2) AS col2
    
    FROM
    (
        SELECT DISTINCT
               columnName,
               Col1,
               col2
        FROM table
    )
    
    GROUP BY columnName;
    

    家庭作业问题通常需要显示一些努力来获得帮助,但是你的问题甚至不清楚,因为没有任何数据。标记你正在使用的dbms,一些非ANSI SQL…创建表。添加一些不同和重复的数据。试试你的疑问!(通过尝试,您将学习得更快!)通过~ORDER By COUNT(*)asc->选择TOP(3)COUNT(不同的列名称)作为tablename GROUP中的某些别名,这是sql吗?