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

高度な合計集計フィールド

    サブクエリを作成して、日付範囲内の各広告のクリック数と販売数の合計を取得します。これらをadと結合します 広告名とproductを取得するためのテーブル 製品名を取得するためのテーブル。 GROUP_CONCATを使用して製品名を組み合わせる 。

    SELECT ad.ad_name, IFNULL(clicks, 0) AS clicks, IFNULL(product_sale, 0) AS product_sale, IFNULL(GROUP_CONCAT(DISTINCT p.product_name), '') AS products
    FROM ad
    LEFT JOIN (
        SELECT ad_id, SUM(clicks) AS clicks
        FROM ad_insight
        WHERE date BETWEEN '2021-04-23' AND '2021-04-25'
        GROUP BY ad_id
    ) AS ai ON ai.ad_id = ad.ad_id
    LEFT JOIN (
        SELECT ad_id, SUM(sale) AS product_sale
        FROM ads_products AS ap
        LEFT JOIN product_insight AS pi ON pi.product_id = ap.product_id
        WHERE date BETWEEN '2021-04-23' AND '2021-04-25'
        GROUP BY ad_id
    ) AS pi ON pi.ad_id = ad.ad_id
    LEFT JOIN ads_products AS ap ON ap.ad_id = ad.ad_id
    LEFT JOIN product AS p ON ap.product_id = p.product_id
    GROUP BY ad.ad_id
    

    デモ




    1. 1対1の関係のヌルチェックを使用したHQL

    2. MySqlでの照合エラーの不正な組み合わせ

    3. 一般的なエラーを解決する方法:2006MySQLサーバーがなくなりました

    4. sudomakeはエラーmemcacheセットアップを返します