Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете редове от таблицата на MySQL, където времевата марка на PHP е по-стара от X

  2. Как мога да конвертирам условно агрегиране mysql в laravel заявка?

  3. Мога ли да вмъкна дата в mySQL във формат DD-Mon-YY?

  4. „Where IN“ с множество колони, дефинирани в Standard SQL?

  5. MYSQL - Невъзможно е да се създаде външен ключ