Menggabungkan Jadual Pemasaran
Sesi, pengguna dan pesanan.
Menggabungkan Jadual Pemasaran ialah pelajaran Digital Marketing Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Digital Marketing Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Digital Marketing Academy merangkumi sejumlah 4 pelajaran.
Mengapa JOIN?
Soalan sebenar biasanya melibatkan beberapa jadual. Perbelanjaan terdapat dalam kempen, hasil dalam pesanan, dan ciri dalam pengguna. Untuk mengira ROAS atau LTV mengikut segmen, anda perlu menggabungkannya.
JOIN memadankan baris daripada dua jadual berdasarkan kunci yang sama, seperti user_id atau campaign_id.
SELECT o.order_id, u.country
FROM orders o
JOIN users u ON o.user_id = u.user_id;INNER JOIN
INNER JOIN hanya mengembalikan baris yang mempunyai padanan dalam kedua-dua jadual. Pesanan tanpa pengguna yang sepadan atau pengguna tanpa pesanan akan digugurkan.
Gunakannya apabila anda hanya mengambil berat tentang rekod yang wujud di kedua-dua belah, seperti pembeli.
SELECT u.user_id, u.country, SUM(o.revenue) AS revenue
FROM users u
JOIN orders o ON o.user_id = u.user_id
GROUP BY u.user_id, u.country;LEFT JOIN
LEFT JOIN mengekalkan setiap baris daripada jadual kiri walaupun tiada padanan di sebelah kanan. Nilai yang hilang akan dikembalikan sebagai NULL.
Inilah caranya untuk mencari pengguna yang tidak pernah membuat pesanan atau sesi yang tidak pernah menghasilkan penukaran.
SELECT u.user_id, COALESCE(SUM(o.revenue), 0) AS revenue
FROM users u
LEFT JOIN orders o ON o.user_id = u.user_id
GROUP BY u.user_id;Mencari Jurang
Gabungkan LEFT JOIN dengan semakan NULL untuk mengasingkan rekod yang tiada padanan. "Pendaftaran manakah yang tidak pernah membuat pembelian?" ialah soalan pengekalan yang lazim.
Nilai NULL di sebelah kanan bermaksud tiada pesanan yang sepadan wujud.
SELECT u.user_id, u.signup_date
FROM users u
LEFT JOIN orders o ON o.user_id = u.user_id
WHERE o.order_id IS NULL;Menggabungkan Sesi dengan Pesanan
Menghubungkan sesi dengan pesanan mengaitkan tingkah laku dengan hasil. Padankan berdasarkan user_id untuk melihat trafik yang akhirnya membuat pembelian.
Ini ialah asas analisis atribusi saluran.
SELECT s.channel, SUM(o.revenue) AS revenue
FROM sessions s
JOIN orders o ON o.user_id = s.user_id
GROUP BY s.channel;Mengira ROAS
ROAS sebenar memerlukan perbelanjaan dan hasil dipaparkan bersebelahan. Gabungkan kempen dengan pesanan berdasarkan campaign_id, kemudian bahagikan jumlahnya.
NULLIF melindungi pengiraan daripada pembahagian dengan perbelanjaan sifar.
SELECT c.campaign_id,
SUM(o.revenue) / NULLIF(SUM(c.spend), 0) AS roas
FROM campaigns c
LEFT JOIN orders o ON o.campaign_id = c.campaign_id
GROUP BY c.campaign_id;Alias Jadual
Alias (o untuk pesanan, u untuk pengguna) memastikan kueri berbilang jadual kekal ringkas dan tidak mengelirukan. Sentiasa nyatakan jadual bagi lajur apabila nama yang sama wujud dalam kedua-dua jadual.
Alias yang jelas menjadikan JOIN yang kompleks jauh lebih mudah dibaca dan dinyahpepijat.
SELECT c.name AS campaign, SUM(o.revenue) AS revenue
FROM campaigns c
JOIN orders o ON o.campaign_id = c.campaign_id
GROUP BY c.name;Menggabungkan Tiga Jadual
Rantaikan JOIN untuk menggabungkan lebih daripada dua jadual. Di sini, kita menghubungkan kempen dengan pesanan, kemudian dengan pengguna, untuk membahagikan hasil mengikut negara.
Setiap JOIN menambah satu lagi syarat ON yang menghubungkan jadual baharu dengan set sedia ada.
SELECT c.name, u.country, SUM(o.revenue) AS revenue
FROM campaigns c
JOIN orders o ON o.campaign_id = c.campaign_id
JOIN users u ON u.user_id = o.user_id
GROUP BY c.name, u.country;Perhatikan Butiran Data
Menggabungkan hubungan satu-ke-banyak boleh menggandakan baris dan mengembungkan jumlah. Jika satu kempen mempunyai banyak pesanan, menjumlahkan perbelanjaan bagi setiap pesanan akan mengira perbelanjaan itu berulang kali.
Agregatkan setiap sisi secara berasingan, kemudian gabungkan jumlahnya supaya angka kekal tepat.
SELECT c.campaign_id, c.total_spend, r.revenue
FROM campaigns c
JOIN (
SELECT campaign_id, SUM(revenue) AS revenue
FROM orders GROUP BY campaign_id
) r ON r.campaign_id = c.campaign_id;Atribusi Sentuhan Pertama
Untuk memberikan kredit kepada saluran pertama yang membawa seseorang pengguna, cari sesi paling awal bagi setiap pengguna, kemudian gabungkan sesi itu dengan pesanan mereka.
Subkueri mengasingkan sentuhan pertama sebelum penggabungan dengan hasil.
SELECT f.channel, SUM(o.revenue) AS revenue
FROM (
SELECT DISTINCT ON (user_id) user_id, channel
FROM sessions ORDER BY user_id, session_date
) f
JOIN orders o ON o.user_id = f.user_id
GROUP BY f.channel;JOIN dalam Amalan
JOIN ialah perkara yang menjadikan SQL pemasaran begitu berkuasa. Perbelanjaan ditambah hasil memberikan ROAS; sesi ditambah pesanan memberikan atribusi; pengguna ditambah pesanan memberikan LTV mengikut segmen.
Pilih INNER apabila kedua-dua belah mesti wujud, dan LEFT apabila anda mahu mengekalkan serta meneliti jurang.
Semakan Ringkas
Anda mahu menyenaraikan setiap pengguna yang telah mendaftar, termasuk pengguna yang tidak pernah membuat pesanan. JOIN manakah yang anda gunakan?
Imbas Kembali
INNER JOIN mengekalkan padanan di kedua-dua belah; LEFT JOIN mengekalkan semua baris kiri dan mendedahkan jurang. Alias serta lajur yang dinyatakan jadualnya memastikan kueri kekal kemas.
Berwaspada terhadap perangkap penggandaan pada JOIN satu-ke-banyak; lakukan pengagregatan awal supaya jumlah kekal tepat. Seterusnya: kueri kohort dan corong.
Pelajari Digital Marketing Academy dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 63
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “Menggabungkan Jadual Pemasaran” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Digital Marketing Academy, termasuk “Menggabungkan Jadual Pemasaran”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Digital Marketing Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menggabungkan Jadual Pemasaran”?
Sesi, pengguna dan pesanan. Anda berlatih Digital Marketing Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Digital Marketing Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Digital Marketing Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Menggabungkan Jadual Pemasaran” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Digital Marketing Academy ini?
Ya. Setiap pelajaran Digital Marketing Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mengapa Pemasar Mempelajari SQL
- SELECT, WHERE, GROUP BY
- Menggabungkan Jadual Pemasaran
- Pertanyaan Kohort dan Corong