5

2つのフィールドを持つテーブルがあります

 x          y
----       ----
 1         null            
 2          5
 3          5
 4         null
 5         null
 6          10
 7          5

そして私のSQLiteクエリは

select y,count(y)
from mytable
group by y

そしてその結果は

null    0
 5      3
 10     1

null 3が表示されると予想されます
が、出力はnull 0
です。これはどういう意味ですか?

4

2 に答える 2

14

SQLiteの集計関数から

count(X)関数は、グループ内でXがNULLでない回数のカウントを返します。count(*)関数(引数なし)は、グループ内の行の総数を返します。

したがって、COUNT関数はカウントされないため、の代わりにNULL使用してください。COUNT(*)COUNT(y)

SELECT y, COUNT(*) AS COUNT
FROM mytable
GROUP BY y

またはCOUNT(x)、このように使用することもできます。

SELECT y, COUNT(x) AS COUNT
FROM mytable
GROUP BY y

このSQLFiddleを参照してください

于 2012-10-13T05:03:06.377 に答える
0

SQLでisnullを使用すると、すべてのnull値に異なるIDが与えられます。

以下のクエリを実行するだけで、目的の結果が得られます

Select y,count(isnull(y,-1)) as [Count]
from mytable
group by y
于 2013-06-21T11:56:26.200 に答える