0

次のクエリがあります。

Select [Field], count([Field]) as Counts
from [Table_Name]
group by [Field]

結果は次のようになります。

[Field] [Counts]
Type1   100
Type2   100
Type3   100
Type4   100
Null    0

ただし、キーまたはグループ化しているフィールド以外のフィールドをカウントすると、[フィールド] Nullで実際の行数が得られます。何故ですか?

Select [Field], count([Other]) as Counts
from [Table_Name]
group by [Field]

結果:

[Field] [Counts]
Type1   100
Type2   100
Type3   100
Type4   100
Null    100
4

2 に答える 2

3

それがどのように機能するかCOUNTです。列のNULL値を指定すると、計算から除外されます。また、あなたCOUNTは と同じ列に設定されているため、グループGROUP BYを受け取ります-カウントしているすべての値はすべてスキップされます。0NULLNULL

次のコードで動作させることができます:

Select [Field], count(ISNULL([Field], 0)) as Counts
from [Table_Name]
group by [Field]

または多分もっと簡単です:

Select [Field], count(*) as Counts
from [Table_Name]
group by [Field]
于 2013-04-10T22:27:23.240 に答える