2016-09-09 16 views
0

私はselectステートメントにCOUNT(1)があるクエリを持っています。 私はそれが何を返すのか知りたい。 COUNT(*)は行数を返しますが、COUNT(1)はわかりません。私はDB2で1つのステートメントを実行しようとしましたが、SELECT LISTのCOLUMN OR EXPRESSIONが有効ではないというエラーが発生しました。DB2のCOUNT(1)

+0

これらは同じ値を返します。パフォーマンスの観点から見ると、あるものよりも速いものがあります...私はこれをDB2でテストしていません。 https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000001942084は持っていると思われ、*が高速であることを示していますが、このhttp:// www .dbforums.com/showthread.php?996966-count(1)-versvers-count(*)は矛盾しています...私はカウント(1)が速くなると思うでしょう。 http://dba.stackexchange.com/questions/2511/what-is-the-difference-between-select-count-and-select-countany-non-null-col – xQbert

答えて

0

あなたのSQLステートメントを投稿してください。

私はあなたが、DB2は完全に有効である程度count(1)に文句されていない場合には

select customer, count(1) 
from salesHistory 

のようなものを持っている疑いがあります。しかし、非集計列とともに選択リストに集計関数があるため、不平を言っています。これを行うには、GROUP BY句を含める必要があります。

select customer, count(1) 
from salesHistory 
group by customer