sql >> データベース >  >> RDS >> Mysql

count(*)とcount(column_name)、違いは何ですか?

    • COUNT(*) 結果セット(またはGROUP BYを使用している場合はグループ)のすべての行をカウントします。
    • COUNT(column_name) column_nameがある行のみをカウントします NULLではありません。値をチェックする必要があるため(列がNULL可能でない場合を除く)、NULL値がない場合でも、状況によってはこれが遅くなる場合があります。
    • COUNT(1) COUNT(*)と同じです 1がNULLになることはないからです。

    結果の違いを確認するには、この小さな実験を試すことができます:

    CREATE TABLE table1 (x INT NULL);
    INSERT INTO table1 (x) VALUES (1), (2), (NULL);
    SELECT
        COUNT(*) AS a,
        COUNT(x) AS b,
        COUNT(1) AS c
    FROM table1;
    

    結果:

    a   b   c
    3   2   3
    


    1. MySQLでヒストグラムを作成する方法は?

    2. postgresでデータベースを切り替える方法は?

    3. CodeIgniterMSSQL接続

    4. SqlAlchemyとcx_Oracleを使用してPandasDataFrameをOracleデータベースに書き込む場合は、to_sql()を高速化します