Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bidang agregat jumlah lanjutan

Tulis subkueri untuk mendapatkan total klik dan penjualan untuk setiap iklan dalam rentang tanggal. Bergabunglah dengan ini dengan ad tabel untuk mendapatkan nama iklan, dan product tabel untuk mendapatkan nama produk. Gabungkan nama produk menggunakan 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. Merekayasa balik definisi kelas deklaratif SQLAlchemy dari database MySQL yang ada?

  2. Menanyakan jumlah item dari pohon

  3. MySQL, Kesalahan 126:File kunci salah untuk tabel

  4. Bagaimana Fungsi INSTR() Bekerja di MySQL

  5. Bagaimana membuat grafik pertumbuhan bayi dengan data di mysql + PDO