SQL用于查找列中不同值的数量

SQL to find the number of distinct values in a column

我可以通过以下方式选择列中的所有不同值:

  • SELECT DISTINCT column_name FROM table_name;
  • SELECT column_name FROM table_name GROUP BY column_name;

但是如何从该查询中获取行数呢? 是否需要子查询?


您可以在COUNT聚合函数中使用DISTINCT关键字:

1
SELECT COUNT(DISTINCT column_name) AS some_alias FROM TABLE_NAME

这将仅计算该列的不同值。


这将为您提供不同的列值和每个值的计数。我经常发现我想知道这两条信息。

1
SELECT DISTINCT columnName, COUNT(columnName) AS CountOf FROM tableName GROUP BY columnName


请注意Count()忽略空值,因此如果您需要允许null作为其自己的不同值,您可以执行一些棘手的操作:

1
2
3
4
SELECT COUNT(DISTINCT my_col)
       + COUNT(DISTINCT CASE WHEN my_col IS NULL THEN 1 ELSE NULL END)
FROM my_table
/


1
2
3
4
SELECT COUNT(*) FROM
(
SELECT DISTINCT column1,column2,column3,column4 FROM abcd
) T

这将给出不同组列的计数。


column_name的唯一值的sql总和并按频率排序:

1
SELECT column_name, COUNT(*) FROM TABLE_NAME GROUP BY column_name ORDER BY 2 DESC;

1
SELECT COUNT(DISTINCT column_name) FROM TABLE AS column_name_count;

你必须计算那个不同的col,然后给它一个别名。


1
SELECT COUNT(DISTINCT columnName) AS columnNameCount FROM tableName

1
SELECT COUNT(DISTINCT(column_name)) AS columndatacount FROM TABLE_NAME WHERE somecondition=TRUE

您可以使用此查询来计算不同/不同的数据。
谢谢


**

Using following SQL we can get the distinct column value count in
Oracle 11g.

**

1
SELECT COUNT(DISTINCT(Column_Name)) FROM TableName

Count(distinct({fieldname}))是多余的

Simply Count({fieldname})为您提供该表中的所有不同值。它不会(尽可能多的假设)只给你表的计数[即与表中的Count(*)不同