查找一列中不同值的数量的SQL语句

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

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

但我如何从该查询中获得行数?是否需要一个子查询?

对该问题的评论 (1)
解决办法

你可以在COUNT聚合函数中使用DISTINCT关键字。

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

这将只计算该列的独立值。

评论(5)

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

SELECT [columnName], count([columnName]) AS CountOf
FROM [tableName]
GROUP BY [columnName]
评论(1)

请注意,Count()会忽略空值,所以如果你需要允许空值作为自己的独立值,你可以做一些棘手的事情,比如:{{5338232}}。

select count(distinct my_col)
       + count(distinct Case when my_col is null then 1 else null end)
from my_table
/
评论(4)

列名的唯一值的sql和,并按频率排序。

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
评论(1)
select count(*) from 
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T

这将给出不同组的列数。

评论(0)
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;

你必须计算这个独立的栏目,然后给它一个别名。

评论(0)
select Count(distinct columnName) as columnNameCount from tableName 
评论(0)

**

使用下面的SQL语句,我们可以得到列值的计数。 Oracle 11g。

**

Select count(distinct(Column_Name)) from TableName
评论(0)
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true

你可以使用这个查询,来计算不同/不同的数据。 谢谢你

评论(0)

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

简单的Count({fieldname})给出了该表中所有不同的值。 它不会(像许多人认为的那样)仅仅给出表的计数[即,与表的Count()不同]。 与表中的Count()不同。]

评论(1)