396

次の方法で、列内のすべての個別の値を選択できます。

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

しかし、そのクエリから行数を取得するにはどうすればよいでしょうか? サブクエリは必要ですか?

4

12 に答える 12

687

集計関数DISTINCT内でキーワードを使用できます。COUNT

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

これにより、その列の個別の値のみがカウントされます。

于 2008-09-26T19:54:59.217 に答える
207

これにより、個別の列値と各値の数の両方が得られます。私は通常、両方の情報を知りたいと思っています。

SELECT [columnName], count([columnName]) AS CountOf
FROM [tableName]
GROUP BY [columnName]
于 2012-10-27T15:45:30.510 に答える
29

Count() は null 値を無視することに注意してください。そのため、null を独自の値として許可する必要がある場合は、次のようなトリッキーなことを行うことができます。

select count(distinct my_col)
       + count(distinct Case when my_col is null then 1 else null end)
from my_table
/
于 2008-09-26T21:32:04.990 に答える
28

column_name の一意の値の sql 合計で、頻度で並べ替えられます。

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
于 2015-05-20T00:04:51.973 に答える
13
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;

その個別の列を数えてから、エイリアスを付ける必要があります。

于 2008-09-26T19:55:38.857 に答える
12
select count(*) from 
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T

これにより、列の個別のグループの数が得られます。

于 2008-11-04T09:37:48.543 に答える
10
select Count(distinct columnName) as columnNameCount from tableName 
于 2008-09-26T19:54:47.517 に答える
-10

Count(distinct({fieldname})) は冗長です

Count({fieldname}) だけで、そのテーブル内のすべての個別の値が得られます。(多くの人が推測するように)テーブルのカウントを提供するだけではありません[つまり、テーブルからのカウント(*)と同じではありません]

于 2014-12-18T02:13:16.343 に答える