การรวมตารางการตลาด
เซสชัน ผู้ใช้ และคำสั่งซื้อ
การรวมตารางการตลาด เป็นบทเรียน Digital Marketing Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Digital Marketing Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Digital Marketing Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องใช้ JOIN
คำถามจริงมักครอบคลุมหลายตาราง ค่าใช้จ่ายอยู่ในตารางแคมเปญ รายได้อยู่ในตารางคำสั่งซื้อ และคุณลักษณะอยู่ในตารางผู้ใช้ หากต้องการคำนวณ ROAS หรือ LTV แยกตามกลุ่มย่อย คุณต้องรวมข้อมูลเหล่านี้
JOIN จับคู่แถวจากสองตารางด้วยคีย์ร่วม เช่น รหัสผู้ใช้หรือรหัสแคมเปญ
SELECT o.order_id, u.country
FROM orders o
JOIN users u ON o.user_id = u.user_id;INNER JOIN
INNER JOIN แสดงเฉพาะแถวที่ตรงกันในทั้งสองตาราง คำสั่งซื้อที่ไม่มีผู้ใช้ตรงกัน หรือผู้ใช้ที่ไม่มีคำสั่งซื้อ จะถูกตัดออก
ใช้เมื่อคุณสนใจเฉพาะระเบียนที่มีอยู่ทั้งสองฝั่ง เช่น ผู้ที่ซื้อสินค้า
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 เก็บทุกแถวจากตารางฝั่งซ้ายไว้ แม้จะไม่มีข้อมูลตรงกันทางฝั่งขวา ค่าที่หายไปจะแสดงเป็น NULL
วิธีนี้ช่วยให้คุณค้นหาผู้ใช้ที่ไม่เคยสั่งซื้อ หรือเซสชันที่ไม่เคยเปลี่ยนเป็นผลลัพธ์ได้
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;ค้นหาข้อมูลที่ขาดหาย
จับคู่ LEFT JOIN กับการตรวจสอบ NULL เพื่อแยกแถวที่ไม่มีคู่ตรงกัน "ผู้สมัครรายใดไม่เคยซื้อสินค้าเลย" เป็นคำถามด้านการรักษาผู้ใช้ที่พบบ่อย
การที่ฝั่งขวาเป็น NULL หมายความว่าไม่มีคำสั่งซื้อที่ตรงกันอยู่
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;เชื่อมเซสชันกับคำสั่งซื้อ
การเชื่อมเซสชันกับคำสั่งซื้อช่วยเชื่อมโยงพฤติกรรมกับผลลัพธ์ จับคู่ด้วยรหัสผู้ใช้เพื่อดูว่าการเข้าชมจากแหล่งใดนำไปสู่การซื้อในท้ายที่สุด
นี่คือพื้นฐานของการวิเคราะห์การระบุแหล่งที่มาของช่องทาง
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;คำนวณ ROAS
ROAS ที่แท้จริงต้องใช้ค่าใช้จ่ายและรายได้ประกอบกัน เชื่อมแคมเปญกับคำสั่งซื้อด้วยรหัสแคมเปญ แล้วหารผลรวม
NULLIF ป้องกันการหารด้วยค่าใช้จ่ายเป็นศูนย์
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;นามแฝงของตาราง
นามแฝง (o สำหรับคำสั่งซื้อ และ u สำหรับผู้ใช้) ช่วยให้คำสั่งสอบถามหลายตารางสั้นและไม่กำกวม เมื่อชื่อคอลัมน์มีอยู่ในทั้งสองตาราง ควรระบุชื่อตารางกำกับคอลัมน์เสมอ
นามแฝงที่ชัดเจนทำให้การเชื่อมตารางที่ซับซ้อนอ่านและตรวจหาข้อผิดพลาดได้ง่ายขึ้นมาก
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;เชื่อมสามตาราง
เชื่อม JOIN ต่อกันเพื่อนำข้อมูลจากมากกว่าสองตารางมารวมกัน ในที่นี้เราเชื่อมแคมเปญกับคำสั่งซื้อและผู้ใช้ เพื่อแบ่งรายได้ตามประเทศ
JOIN แต่ละรายการจะเพิ่มเงื่อนไข ON อีกหนึ่งรายการเพื่อเชื่อมตารางใหม่เข้ากับชุดตารางเดิม
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;ระวังระดับรายละเอียดข้อมูล
การเชื่อมความสัมพันธ์แบบหนึ่งต่อหลายอาจทำให้จำนวนแถวเพิ่มและทำให้ผลรวมสูงเกินจริง หากแคมเปญหนึ่งมีหลายคำสั่งซื้อ การรวมค่าใช้จ่ายแยกตามคำสั่งซื้อจะนับค่าใช้จ่ายซ้ำ
รวมค่าของแต่ละฝั่งแยกกัน แล้วจึงเชื่อมผลรวม เพื่อให้ตัวเลขถูกต้องตามจริง
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;การระบุแหล่งที่มาจากการสัมผัสครั้งแรก
หากต้องการยกเครดิตให้ช่องทางแรกที่ผู้ใช้เข้ามา ให้ค้นหาเซสชันแรกสุดของผู้ใช้แต่ละราย แล้วเชื่อมเซสชันนั้นกับคำสั่งซื้อของผู้ใช้
คำสั่งสอบถามย่อยจะแยกการสัมผัสครั้งแรกออกมาก่อนการเชื่อมรายได้
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 ในการใช้งานจริง
JOIN คือจุดที่ SQL ด้านการตลาดเริ่มทรงพลัง ค่าใช้จ่ายรวมกับรายได้ทำให้ได้ ROAS เซสชันรวมกับคำสั่งซื้อทำให้ระบุแหล่งที่มาได้ และผู้ใช้รวมกับคำสั่งซื้อทำให้ได้ LTV แยกตามกลุ่มย่อย
เลือก INNER เมื่อทั้งสองฝั่งต้องมีข้อมูล และเลือก LEFT เมื่อคุณต้องการเก็บทุกแถวฝั่งซ้ายไว้เพื่อตรวจสอบข้อมูลที่ขาดหาย
ตรวจสอบความเข้าใจ
คุณต้องการแสดงรายชื่อผู้ใช้ทุกคนที่สมัครใช้งาน รวมถึงผู้ที่ไม่เคยสั่งซื้อเลย คุณควรใช้การเชื่อมตารางแบบใด
ทบทวน
INNER JOIN เก็บแถวที่ตรงกันจากทั้งสองฝั่ง ส่วน LEFT JOIN เก็บแถวทั้งหมดจากฝั่งซ้ายและเผยให้เห็นข้อมูลที่ขาดหาย นามแฝงและคอลัมน์ที่ระบุชื่อตารางกำกับช่วยให้คำสั่งสอบถามเป็นระเบียบ
ระวังปัญหาการเพิ่มจำนวนแถวในความสัมพันธ์แบบหนึ่งต่อหลาย ควรรวมค่าล่วงหน้าเพื่อให้ผลรวมถูกต้อง ขั้นถัดไป: คำสั่งสอบถามเกี่ยวกับโคฮอร์ตและฟันเนล
คำถามที่พบบ่อย
บทเรียน “การรวมตารางการตลาด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การรวมตารางการตลาด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Digital Marketing Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Digital Marketing Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การรวมตารางการตลาด”
เซสชัน ผู้ใช้ และคำสั่งซื้อ คุณปฏิบัติ Digital Marketing Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Digital Marketing Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Digital Marketing Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การรวมตารางการตลาด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Digital Marketing Academy นี้ได้ไหม
ได้ บทเรียน Digital Marketing Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ