最近私はインタビューでこの質問をしました。 私はこれをmySQLで試してみて、同じ結果を得ました(最終結果)。 すべては、その特定の表の行数を示しました。 誰もそれらの間の主な違いを説明することができます。mySQL/SQLのcount(0)、count(1)..、count(*)の違いは何ですか?
24
A
答えて
30
何も本当に、あなたは、テーブル内のフィールドまたは代わりに定数値の括弧内の式または*を指定しない限り、
は、私はあなたに詳細な回答を与えてみましょう。 Countは、与えられたフィールドのnull以外のレコード番号を返します。 A
select 1 from A
select 0 from A
select * from A
は、すべて同じ数のレコード、つまりテーブルAの行数を返します。出力はまだ異なります。テーブルに3つのレコードがある場合。フィールド名としてXとYを使用する場合
select 1 from A will give you
1
1
1
select 0 from A will give you
0
0
0
select * from A will give you (assume two columns X and Y is in the table)
X Y
-- --
value1 value1
value2 (null)
value3 (null)
したがって、3つのクエリはすべて同じ番号を返します。あなたは
select count(Y) from A
を使用しない限り、唯一つの非NULL値があるので、あなたはCOUNT(expression)
が発現とCOUNT(column)
意志で非NULL値をカウントする一方、出力
20
COUNT(*)
として1は、行の数をカウントします取得します列のすべてのNULLでない値を数えます。
0と1の両方がヌル値ではないため、COUNT(0)=COUNT(1)
であり、両方とも行番号COUNT(*)
に相当します。それは別のコンセプトですが、結果は同じになります。
10
今、それらはすべて同じように実行する必要があります。
クエリの最適化コードが不適切なため、カウントを実行する前にデータベースがすべてのフィールドデータを取得するため、COUNT(1)(またはあなたが選んだ定数)をCOUNT(* 。したがって、COUNT(1)はより高速でしたが、今は問題ではありません。
関連する問題
- 1. アンドロイドメモリモニタでは、 `total count`と` heap count 'の違いは何ですか?
- 2. select distinct countとselect count distinctの違いは何ですか?
- 3. SQL/HIVE - Distinct count query - DISTINCTレコードのサブクエリでSELECT COUNT(DISTINCT列、..)とSELECT COUNT(*)の違いは何ですか?
- 4. sh:[$ COUNT == 0]]と[$ COUNT == 0]の両方からのエラー
- 5. INSERT COUNT IF()= 0
- 6. TermStore Countが0
- 7. Countは、私が0
- 8. DB2のCOUNT(1)
- 9. Count with Count
- 10. Count Count in Python
- 11. UPDATE count = count + 1の同時性はありますか?
- 12. MySQLでCOUNT(*)とは何か
- 13. elasticsearch rangeファセットのcountとtotal_countの違いは何ですか?
- 14. d [count]とd [count]の差
- 15. チューニングクエリのSELECT COUNT(1)
- 16. BigQuery COUNT(DISTINCT値)とCOUNT(値)
- 17. (count!= null)vs if(!count)in javascript
- 18. MySQL - Count/Having Count> columnName
- 19. 追加Countが共に0
- 20. where clause orders count> 0
- 21. WMPLib:player.mediaCollection.getAll()。countは常に0です
- 22. Countは
- 23. MySQLのCOUNT(ID)とCOUNT(*)の比較
- 24. COUNT(1) - COUNT(column_name)はNULL値の数だけを返しますか?
- 25. 挿入時のMAX(count)+1、
- 26. count(1)エラーのMySQLサブストリング
- 27. count> 0の場合、sequelize countと返すブール値をチェックする方法
- 28. count()のcount()が1より大きい場合のsqlクエリの構築
- 29. COUNTとBY T-SQL GROUPにして、COUNT
- 30. Azure Logic Apps - Do Count Until Count&Timeoutプロパティ
カラムに 'null'値があります。次に列を数えます。カウントがどのように異なるかを確認してください。 「0」または「1」を選択すると、各行に対して定数を選択するだけであり、「null」は関係しません。 – Glenn
[SQLでは、count(column)とcount(\ *)の違いは何ですか?](http://stackoverflow.com/questions/59294/in-sql-whats-the-difference-between-countcolumn -and-count) – newtover