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

多対多のテーブルからグループを取得する

    GROUP_CONCAT()を使用した「不正行為」ソリューション 。これには、どのトピックにも関連しない質問の数は表示されません:

    SELECT
          TopicIds
        , COUNT(*) AS QuestionCount
    FROM
          ( SELECT
                  QuestionId
                , GROUP_CONCAT(TopicId ORDER BY TopicId) AS Topics
            FROM 
                  QuestionTopic
            GROUP BY 
                  QuestionId
          ) AS grp
    GROUP BY
          Topics
    


    1. ウィンドウ関数または共通テーブル式:範囲内の前の行をカウントします

    2. PostgreSQLまたはOracleで日付順に並べ替える方法

    3. データベースメールプロファイル(SSMS)内のアカウントの優先度を変更する

    4. find_in_setが機能するのにIN句が機能する理由