TIL SQL(集約関数count)

3458 ワード

今日勉強します

  • count(値)差
  • SQl sprint

  • Table関係図
  • COUNT (*)

    Q. duRiCha가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.
    SELECT COUNT(*) AS ContentCount 
    //COUNT(content.id) 통과O
    FROM content 
    INNER JOIN user 
    ON user.id = content.userId WHERE name = 'duRiCha

    COUNT (content.id)

    Q. 각 user(컬럼명: name)가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.
    SELECT user.name AS name,
    COUNT(content.id) AS ContentCount
    //COUNT(*) 통과X
    FROM user 
    LEFT JOIN content 
    ON user.id = content.userId 
    GROUP BY user.name

    COUNT関数


    COUNT関数は、テーブル内のカラムのデータをカウントするために使用されます.
    NULLのデータは計算されませんので、列ではなく(*)を使用します.

    LEFTJOINは空の値を生成しますが、空の値以外の個数を計算する場合

  • :COUNT(*)
  • を含む
  • COUNT(*)を使用すると、NULLを含むすべてのCOUNTが使用されます.
  • 전체 행 개수 가져올때
    SELECT COUNT(*) FROM TableName;
  • :COUNT(ColumnName)
  • を除く
  • COUNT(カラム名)を使用する場合、COUNTにはNULL値は含まれません.
  • 컬럼 데이터 개수 가져올 때
    SELECT COUNT(ColumnName) FROM TableName;

    完了後、


    上の2つの問題を解くとき、最初の問題は(*)ですべての列を数えて、テストに合格しました.
    次の質問はColumnNameで記入してから通過します.
    差異についてはまだ足りないようなので、検索で内容を検索しました.COUNT関数はdistinctと一緒に使うと利用率が高いと言われていますが、この部分はこれからしっかり勉強しましょう.