Oracleのcount(1)、count(*)、count(カラム名)関数の違い


1)count(1)とcount(*)の比較:
1、データテーブルにプライマリ・キーがない場合、count(1)はcount(*)より速い2、プライマリ・キーがある場合、そのプライマリ・キー(連合プライマリ・キー)はcount(*)よりも速い3、テーブルにフィールドが1つしかない場合はcount(*)が最も速い4、count(*)count(1)の両者を比較します.主にcount(1)に対応するデータフィールドである.5、count(1)が集約インデックス、idであれば、count(1)が速いに違いない.でも差は小さいです.count(*)のため、そのフィールドに自動的に最適化されて指定されます.だからcount(?)に行く必要はなく、count(*)を使うと、sqlが最適化を完了します.
2)count詳細:
1.count(*)は、テーブルに存在するすべてのローの合計数をnullの値を持つローを返します.ただし、count(カラム名)は、null以外のすべてのローの合計数(デフォルト値のあるカラムも計上されます)を返します..2、distinctカラム名は、nullの値と重複データを除いた結果となります
3)例として以下のように説明する.
 1  --   test 
 2  SQL> create table test
 3  (
 4  ename varchar2(10),
 5  sal number(4)
 6  );
 7 
 8 --  test      
 9 SQL> insert into test values('fxe1',90);
10 SQL> insert into test(ename) values('fxe2');
11 SQL> insert into test(ename) values('fxe3');
12 SQL> insert into test(ename) values('fxe4');
13 SQL> insert into test values('fxe5',80);
14 SQL> insert into test values('fxe6',80);
15 
16 SQL> select * from test; --   test       
17 ENAME      SAL
18 ---------- ----------
19 fxe1        90
20 fxe2
21 fxe3
22 fxe4
23 fxe5        80
24 fxe6        80
25 ---------- ----------
26 27 SQL> select count(*) from test; -- count(*): NULL, 6 28 COUNT(*) 29 ---------- 30 6 31 32 SQL> select count(1) from test; -- count(1): NULL, 6 , count(*) 33 COUNT(1) 34 ---------- 35 6 36 37 SQL> select count(sal) from test; -- count( ): NULL, , 3 38 COUNT(SAL) 39 ---------- 40 3 41 42 SQL> select count(distinct sal) from test; -- count( ): NULL, “count(distinct sal)”, 2 43 COUNT(DISTINCTSAL) 44 ------------------ 45 2 46 47 SQL> select distinct sal from test; 48 SAL 49 ---------- 50 80 51 90

 
 
転載先:http://blog.csdn.net/szstephenzhou/article/details/8446481
 
 
作者:DSHORE出典:http://www.cnblogs.com/dshore123/転載を歓迎して、転載して必ず出典を説明します.△もし本文が役に立つなら、右下の推薦をクリックしてください.ありがとうございます.
 
 
 
 
G
M
T
 
検出言語世界語中国語簡体字中国語繁体字デンマーク語ウクライナ語ウズベキスタン語アルメニア語イボ語ロシア語ブルガリア語僧伽羅語クロアチア語アイスランド語ガリシア語カタルーニャ語ハンガリー語南アフリカ祖魯語カナダ語インドネシア巽他語インドネシアジャワ語インドネシア語グギラート語カザフスタン語タジック語セルビア語セソト語ウェールズ語バングラデシュ語宿務語ネパール語バスク語ブール語(南アフリカオランダ語)ヘブライ語ギリシャ語ドイツ語イタリア語イタリア語第緒語ラテン語ラトビア語ノルウェー語チェコ語スロバキア語スロベニア語スワヒリ語バイザンプ語グルジア語マオリ語フランス語ポーランド語ボスニア語ペルシャ語テルル語タイ語ハイチクリオル語アイルランド語エストニア語スウェーデン語リトアニア語ソマリア語ヨルバ語ミャンマー語ラオス語フィンランド語苗語英語オランダ語フィリピン語ポルトガル語モンゴル語スペイン語ハウサ語ベトナム語アゼルバイジャン語アルバニア語アラビア語韓国語マケドニア語マケドニア語マラヤラム語マレー語マルタ語高綿語チチェワ語
 
世界語中国語簡体字中国語繁体字デンマーク語ウクライナ語ウズベキスタン語アルメニア語イボ語ロシア語ブルガリア語僧伽羅語クロアチア語アイスランド語ガリシア語カタルーニャ語ハンガリー語南アフリカ祖魯語カナダ語インド語インドネシア巽他語インドネシアジャワ語グギラート語カザフスタン語タジック語セルビア語セソト語バングラデシュ語セブ語ル語バスク語ブール語(南アフリカオランダ語)ヘブライ語ギリシャ語ドイツ語イタリア語イタリア語第緒語ラテン語ラトビア語ノルウェー語チェコ語スロバキア語スロベニア語スワヒリ語バイザンプ語グルジア語マオリ語フランス語ポーランド語ボスニア語ペルシャ語テルル語タイ語ハイチクリオル語アイルランド語エストニア語スウェーデン語リトアニア語ソマリア語ヨルバ語ミャンマー語ラオス語フィンランド語苗語英語オランダ語フィリピン語ポルトガル語モンゴル語スペイン語ハウサ語ベトナム語アゼルバイジャン語アルバニア語アラビア語韓国語マケドニア語マケドニア語マラヤラム語マレー語マルタ語高綿語チチェワ語
 
 
 
 
 
 
 
 
テキスト音声変換機能は200文字のみ
 
 
オプション:履歴:フィードバック:Donate
閉じる
転載先:https://www.cnblogs.com/dshore123/p/7878310.html