SQL to find the number of distinct values in a column

Christian Oudard picture Christian Oudard · Sep 26, 2008 · Viewed 569.1k times · Source

I can select all the distinct values in a column in the following ways:

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

But how do I get the row count from that query? Is a subquery required?

Answer

Noah Goodrich picture Noah Goodrich · Sep 26, 2008

You can use the DISTINCT keyword within the COUNT aggregate function:

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

This will count only the distinct values for that column.