Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erweiterte Summenfelder

Schreiben Sie Unterabfragen, um die Klick- und Verkaufssummen für jede Anzeige im Datumsbereich abzurufen. Schließen Sie sich diesen mit der ad an Tabelle, um den Anzeigennamen und das product abzurufen Tabelle, um die Produktnamen zu erhalten. Kombinieren Sie die Produktnamen mit 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

DEMO