Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaawansowane pola agregacji sum

Napisz podzapytania, aby uzyskać łączne liczby kliknięć i sprzedaży dla każdej reklamy w zakresie dat. Dołącz do nich za pomocą ad tabeli, aby uzyskać nazwę reklamy i product tabeli, aby uzyskać nazwy produktów. Połącz nazwy produktów za pomocą 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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. W jaki sposób umożliwiasz klientom logowanie się do Twojej witryny przy użyciu ich konta Google?

  2. Zależne rozwijane pole CakePHP 3

  3. Tabela określona dwukrotnie w procedurze, jak naprawić?

  4. Terminal nie rozpoznaje poleceń mysqld i mysql

  5. Zapytanie MySQL do grupowania danych w różne zakresy