ฟีเจอร์นี้ใช้ได้เฉพาะใน Analytics 360 ซึ่งเป็นส่วนหนึ่งของ Google Marketing Platform ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google Marketing Platform |
บทความนี้ประกอบด้วยตัวอย่างของวิธีสร้างการค้นหาข้อมูล Analytics ที่คุณส่งออกไปที่ BigQuery เราได้จัดทำชุดข้อมูลตัวอย่างเพื่อให้คุณฝึกฝนกับการค้นหาในบทความนี้ได้
บทความนี้ประกอบด้วย- การเพิ่มประสิทธิภาพการค้นหา
- เคล็ดลับและแนวทางปฏิบัติแนะนำ
- ตัวอย่างการค้นหาพื้นฐาน
- ตัวอย่างการค้นหาขั้นสูง
- ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อผลิตภัณฑ์ A (อีคอมเมิร์ซแบบคลาสสิก)
- ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อผลิตภัณฑ์ A (อีคอมเมิร์ซที่เพิ่มประสิทธิภาพ)
- จำนวนการโต้ตอบของผู้ใช้โดยเฉลี่ยก่อนซื้อ
- เปอร์เซ็นต์การขายจากสต็อกสินค้าต่อผลิตภัณฑ์
- ความสามารถในการทำกำไรของแต่ละผลิตภัณฑ์
- ความสามารถในการทำกำไรได้จริงของแต่ละผลิตภัณฑ์
การเพิ่มประสิทธิภาพการค้นหา
การค้นหาที่คุณเรียกใช้แต่ละครั้งจะรวมอยู่ในการประมวลผลข้อมูลที่ได้รับอนุญาตเป็นรายเดือน หากคุณเลือกช่องมากเกินความจำเป็น จะเป็นการเพิ่มจำนวนข้อมูลที่ต้องประมวลผล ส่งผลให้คุณใช้จำนวนข้อมูลที่ได้รับอนุญาตเป็นรายเดือนมากขึ้นเกินความจำเป็น การค้นหาที่มีการเพิ่มประสิทธิภาพจะใช้การประมวลผลข้อมูลที่ได้รับอนุญาตเป็นรายเดือนอย่างมีประสิทธิภาพ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งราคา
เลือกเฉพาะสิ่งที่คุณต้องการ
เมื่อคุณสร้างการค้นหา ให้เลือกช่องที่เกี่ยวข้องภายในคำสั่ง SELECT การไม่เรียกช่องที่ไม่จำเป็นจะช่วยลดจำนวนข้อมูลและเวลาที่ต้องใช้ในการประมวลผลการค้นหา
ตัวอย่าง: หลีกเลี่ยงการใช้โอเปอเรเตอร์ที่เป็นไวลด์การ์ด
รูปแบบไม่ถูกต้อง: ใช้โอเปอเรเตอร์ที่เป็นไวลด์การ์ด |
---|
SELECT * |
รูปแบบที่ดีกว่า: ใช้ชื่อช่องเพื่อหลีกเลี่ยงการประมวลผลที่ไม่จำเป็น |
---|
SELECT ช่อง1, ช่อง2 |
อนุญาตให้แคช
หลีกเลี่ยงการใช้ฟังก์ชันเป็นช่องเมื่อเป็นไปได้ ฟังก์ชัน (เช่น NOW()
หรือ TODAY()
) จะแสดงผลลัพธ์ของตัวแปร ซึ่งจะทำให้ไม่มีการแคชการค้นหาที่ช่วยให้สามารถแสดงผลลัพธ์ได้เร็วขึ้น ให้ใช้เวลาและวันที่ที่เฉพาะเจาะจงแทน
ใช้ตารางข้อมูลชั่วคราวสำหรับการค้นหาย่อยที่ใช้บ่อย
หากคุณพบว่ามีการใช้การค้นหาใดเป็นการค้นหาย่อยบ่อยครั้ง คุณสามารถบันทึกการค้นหานั้นเป็นตารางข้อมูลชั่วคราวโดยคลิกบันทึกเป็นตารางเหนือผลการค้นหา จากนั้นคุณสามารถอ้างอิงตารางนั้นในส่วน FROM
ของการค้นหา ซึ่งจะลดทั้งจำนวนข้อมูลที่ต้องประมวลผล และระยะเวลาสำหรับการประมวลผล
ใช้ตารางข้อมูลชั่วคราว |
---|
SELECT ช่อง 1, ช่อง2 |
การแก้ไขข้อบกพร่องในการค้นหา
BigQuery จะแก้ไขข้อบกพร่องในโค้ดขณะที่คุณสร้าง ในหน้าต่างการสร้าง การแก้ไขข้อบกพร่องจะแสดงอยู่ใต้การค้นหา โดยคุณยังสามารถดูจาก API โดยใช้ค่าสถานะ dryRun ได้อีกด้วย
การค้นหาที่ถูกต้องจะมีสัญญาณบอกสถานะเป็นสีเขียวที่คุณสามารถคลิกเพื่อดูจำนวนข้อมูลที่ประมวลผลโดยการค้นหาได้ ฟีเจอร์นี้ช่วยให้คุณเพิ่มประสิทธิภาพข้อมูลก่อนที่จะเรียกใช้การค้นหาเพื่อหลีกเลี่ยงการประมวลผลข้อมูลที่ไม่จำเป็นได้
การค้นหาที่ไม่ถูกต้องจะมีสัญญาณบอกสถานะเป็นสีแดงที่คุณสามารถคลิกเพื่อดูข้อมูลเกี่ยวกับข้อผิดพลาด และดูบรรทัดและคอลัมน์ที่เกิดข้อผิดพลาด ในตัวอย่างด้านล่าง คำสั่ง GROUP BY ว่างเปล่า โดยมีการบอกตำแหน่งข้อผิดพลาดที่แน่นอน
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
การใช้ชุดข้อมูลตัวอย่าง
ตัวอย่างต่อไปนี้ใช้ชุดข้อมูลตัวอย่างของ Google Analytics
หากต้องการใช้การค้นหาในข้อมูลของคุณเอง เพียงแทนที่ชื่อชุดข้อมูลและโครงการในตัวอย่างด้วยชื่อชุดข้อมูลและโครงการของคุณเอง
การใช้ SQL มาตรฐานเทียบกับ SQL แบบเดิม
BigQuery รองรับ SQL 2 ภาษา ได้แก่
การย้ายข้อมูลไปยัง SQL มาตรฐานจะอธิบายความแตกต่างระหว่างทั้ง 2 ภาษา
ปัจจุบัน SQL มาตรฐานเป็นภาษา SQL ที่ระบบต้องการสำหรับการค้นหาข้อมูลที่จัดเก็บไว้ใน BigQuery
ดูการเปิดใช้ SQL มาตรฐานเพื่อดูข้อมูลเกี่ยวกับการเปิดใช้ SQL มาตรฐานใน BigQuery UI, CLI, API หรืออินเทอร์เฟซใดก็ตามที่คุณใช้อยู่
วิธีที่ง่ายที่สุดในการเริ่มต้นคือการใส่ความคิดเห็น "standardSQL" ไว้ที่ด้านบนของการค้นหา SQL มาตรฐาน ดังที่แสดงในตัวอย่างต่อไปนี้
หากใช้ SQL เดิม ระบบจะส่งข้อมูล Google Analytics 360 ไปไว้ในตารางใหม่ทุกวัน หากต้องการค้นหาหลายตารางพร้อมกัน ให้ใส่เครื่องหมายคอมมาคั่นชื่อตาราง ใช้ฟังก์ชันไวลด์การ์ดของตาราง TABLE_DATE_RANGE
หรือใช้ฟังก์ชัน TABLE_DATE_RANGE
ที่คั่นด้วยเครื่องหมายคอมมาหลายรายการ ตามที่แสดงในตัวอย่างต่อไปนี้
สืบค้นตารางข้อมูลหลายรายการ
ตัวอย่างต่อไปนี้แสดงการค้นหาของ SQL มาตรฐานและ SQL แบบเดิมสำหรับข้อมูลเดียวกัน
3 วัน
SQL มาตรฐาน
3 วันโดยใช้ UNION ALL |
---|
#standardSQL |
SQL เดิม
3 วันโดยใช้ชื่อตารางคั่นด้วยคอมมา |
---|
SELECT |
1,095 วันล่าสุด
SQL มาตรฐาน
1,095 วันล่าสุดโดยใช้ _TABLE_SUFFIX |
---|
#standardSQL |
SQL เดิม
1,095 วันล่าสุดโดยใช้ TABLE_DATE_RANGE |
---|
SELECT |
36 เดือนล่าสุด
SQL มาตรฐาน
36 เดือนล่าสุดโดยใช้ _TABLE_SUFFIX |
---|
#standardSQL |
SQL เดิม
36 เดือนล่าสุดโดยใช้ TABLE_DATE_RANGE |
---|
SELECT |
3 ปีล่าสุด
SQL มาตรฐาน
3 ปีล่าสุดโดยใช้ _TABLE_SUFFIX |
---|
#standardSQL |
SQL เดิม
3 ปีล่าสุดโดยใช้ TABLE_DATE_RANGE |
---|
SELECT |
ช่วงวันที่เฉพาะเจาะจง
SQL มาตรฐาน
ช่วงวันที่ที่เฉพาะเจาะจงโดยใช้ _TABLE_SUFFIX |
---|
#standardSQL |
SQL เดิม
ช่วงวันที่ที่เฉพาะเจาะจงโดยใช้ TABLE_DATE_RANGE |
---|
SELECT |
3 ปีล่าสุดบวกด้วยข้อมูลของวันนี้ (ระหว่างวัน)
SQL มาตรฐาน
3 ปีล่าสุดบวกด้วยข้อมูลของวันนี้ (ระหว่างวัน) โดยใช้ UNION ALL & _TABLE_SUFFIX |
---|
โปรดทราบว่าการค้นหาตัวอย่างนี้จะไม่ทำงานกับชุดข้อมูลสาธารณะของ Google Analytics เนื่องจากปัจจุบันไม่มีตารางระหว่างวัน |
#standardSQL |
SQL เดิม
3 ปีล่าสุดบวกด้วยข้อมูลของวันนี้ (ระหว่างวัน) โดยใช้ TABLE_DATE_RANGE หลายรายการ |
---|
โปรดทราบว่าการค้นหาตัวอย่างนี้จะไม่ทำงานกับชุดข้อมูลสาธารณะของ Google Analytics เนื่องจากปัจจุบันไม่มีตารางระหว่างวัน |
SELECT |
ตัวอย่างการค้นหาพื้นฐาน
ส่วนนี้อธิบายวิธีสร้างการค้นหาพื้นฐานโดยใช้เมตริกและมิติข้อมูลจากตัวอย่างข้อมูลของ Analytics
จำนวน [เมตริก] ทั้งหมดต่อ [มิติข้อมูล]
ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถาม เบราว์เซอร์แต่ละตัวบนอุปกรณ์มีการสร้างธุรกรรมในเดือนกรกฎาคม 2017 เป็นจำนวนเท่าใด
SQL มาตรฐาน
จำนวนธุรกรรมรวมต่อเบราว์เซอร์อุปกรณ์ในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
จำนวนธุรกรรมรวมต่อเบราว์เซอร์อุปกรณ์ในเดือนกรกฎาคม 2017 |
---|
SELECT |
อัตราตีกลับโดยเฉลี่ยต่อ [มิติข้อมูล]
อัตราตีกลับที่แท้จริงคือเปอร์เซ็นต์ของการเข้าชมที่มีการดูหน้าเว็บเพียงหน้าเดียว ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถามแหล่งที่มาของการเข้าชมแต่ละแหล่งมีอัตราตีกลับจริงเป็นอย่างไร
SQL มาตรฐาน
อัตราตีกลับต่อแหล่งที่มาของการเข้าชมในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
อัตราตีกลับต่อแหล่งที่มาของการเข้าชมในเดือนกรกฎาคม 2017 |
---|
SELECT |
จำนวนการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยตามประเภทผู้ซื้อ (ผู้ซื้อเทียบกับผู้ใช้ที่ไม่ต้องการซื้อ)
ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถามผู้ใช้ที่ซื้อมีการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยในเดือนกรกฎาคม 2017 เป็นจำนวนเท่าใด
SQL มาตรฐาน
จำนวนการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยของผู้ใช้ที่ซื้อในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
จำนวนการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยของผู้ใช้ที่ซื้อในเดือนกรกฎาคม 2017 |
---|
SELECT |
ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถามผู้ใช้ที่ไม่ได้ซื้อมีการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยในเดือนกรกฎาคม 2017 เป็นจำนวนเท่าใด
SQL มาตรฐาน
จำนวนการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยของผู้ใช้ที่ไม่ได้ซื้อในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
จำนวนการดูหน้าเว็บผลิตภัณฑ์โดยเฉลี่ยของผู้ใช้ที่ไม่ได้ซื้อในเดือนกรกฎาคม 2017 |
---|
SELECT |
จำนวนการทำธุรกรรมโดยเฉลี่ยต่อผู้ซื้อ
ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถามผู้ใช้ที่ซื้อแต่ละคนมีจำนวนการทำธุรกรรมโดยเฉลี่ยในเดือนกรกฎาคม 2017 เป็นเท่าใด
SQL มาตรฐาน
จำนวนการทำธุรกรรมโดยเฉลี่ยต่อผู้ใช้ที่ซื้อในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
จำนวนการทำธุรกรรมโดยเฉลี่ยต่อผู้ใช้ที่ซื้อในเดือนกรกฎาคม 2017 |
---|
SELECT |
จำนวนเงินที่ใช้โดยเฉลี่ยต่อเซสชัน
ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถามแต่ละเซสชันในเดือนกรกฎาคม 2017 มีการใช้เงินโดยเฉลี่ยเป็นจำนวนเท่าใด
SQL มาตรฐาน
จำนวนเงินที่ใช้โดยเฉลี่ยต่อเซสชันในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
จำนวนเงินที่ใช้โดยเฉลี่ยต่อเซสชันในเดือนกรกฎาคม 2017 |
---|
SELECT |
ลำดับของ Hit
ด้านล่างคือสคริปต์ตัวอย่างสำหรับคำถามหน้าเว็บมีลำดับการดูเป็นอย่างไร
SQL มาตรฐาน
ลำดับการดูหน้าเว็บของผู้ใช้ในเดือนกรกฎาคม 2017 |
---|
#standardSQL |
SQL เดิม
ลำดับการดูหน้าเว็บของผู้ใช้ในเดือนกรกฎาคม 2017 |
---|
SELECT |
ในการค้นหานี้ เรามีการจำกัดประเภทของ Hit เป็นPAGES
เพื่อแยกเหตุการณ์หรือการทำธุรกรรมออกไป เอาต์พุตแต่ละบรรทัดจะแสดงการดูหน้าเว็บโดยแสดงช่องตามลำดับที่เป็นค่าเริ่มต้นในคำสั่ง SELECT
มิติข้อมูลที่กำหนดเองหลายรายการที่ระดับ Hit หรือเซสชัน
มิติข้อมูลที่กำหนดเองที่ระดับ Hit |
---|
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, |
มิติข้อมูลที่กำหนดเองที่ระดับเซสชัน |
---|
SELECT fullVisitorId, visitId, |
ในการค้นหาแต่ละรายการ
คำสั่ง SELECT
จะค้นหาช่องมิติข้อมูลและเมตริกที่เกี่ยวข้อง
ฟังก์ชัน MAX
- จะแสดงมิติข้อมูลที่กำหนดเองเป็นคอลัมน์ใหม่ คุณสามารถใช้ฟังก์ชันนี้ซ้ำเพื่อให้แสดงมิติข้อมูลที่กำหนดเองเป็นคอลัมน์ใหม่หลายรายการ
WITHIN hits
และWITHIN RECORD
จะประเมินเงื่อนไขที่อยู่ภายในช่องต่างๆ ใน BigQuery- จะมีการประเมินเงื่อนไขภายใน
MAX
สำหรับมิติข้อมูลที่กำหนดเองแต่ละรายการ โดยรายการที่ไม่ใช่index=1 (hits)
หรือindex=2 (sessions)
จะแสดงเป็นNULL
- จะแสดงค่าสูงสุด ซึ่งเป็นค่าของ Custom Dimension 1 สำหรับ Hit หรือ Custom Dimension 2 สำหรับเซสชัน เนื่องจากค่าอื่นๆ ทั้งหมดเป็น
NULL
ตัวอย่างการค้นหาขั้นสูง
เมื่อคุณคุ้นเคยกับการค้นหาพื้นฐานแล้ว คุณสามารถสร้างการค้นหาโดยใช้ฟังก์ชันและคุณลักษณะขั้นสูงที่มีอยู่ใน BigQuery
ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อผลิตภัณฑ์ A (อีคอมเมิร์ซแบบคลาสสิก)
ข้อมูลด้านล่างคือโครงสร้างสคริปต์สำหรับคำถามที่ว่าลูกค้าที่ซื้อผลิตภัณฑ์ A มีการซื้อผลิตภัณฑ์ใดเพิ่มเติม
ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อผลิตภัณฑ์ A (อีคอมเมิร์ซแบบคลาสสิก) |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
- ในบรรทัดแรก คุณจะเลือกรายการอื่นๆ ทั้งหมดที่ผู้ใช้ซื้อ และใช้ฟังก์ชันการรวม
COUNT()
ในการคำนวณจำนวนการซื้อรายการอื่นๆ แต่ละรายการ ผลลัพธ์ที่ได้จะแสดงอยู่ในช่องquantity
พร้อมด้วยรายการที่เกี่ยวข้องในช่องผลิตภัณฑ์other_purchased_products
- ในการค้นหาย่อยที่เป็นสีเทา คุณจะเลือกเฉพาะผู้ใช้ที่ไม่ซ้ำ (
fullVisitorId
) ที่มีการทำธุรกรรม (totals.transactions>=1
) ในระหว่างที่ซื้อผลิตภัณฑ์ A (WHERE hits.item.productName CONTAINS 'Product Item Name A'
)
กฎ (คำสั่ง WHERE
และ AND
) ในการค้นหาระดับบนสุด (สีเขียว) จะไม่สนใจค่าใน hits.item.productName
ซึ่งเป็น Null และมีผลิตภัณฑ์ A
ข้อมูลด้านล่างคือตัวอย่างของการค้นหาหากลูกค้าซื้อ Brighton Metallic Pens - Set of 4 พวกเขาจะซื้อผลิตภัณฑ์ใดเพิ่มเติม
ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อ "Brighton Metallic Pens (Set of 4)" ในวันที่ 24 มิถุนายน 2013 |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
ใน Dremel/BigQuery การใช้ WHERE expr IN
จะทริกเกอร์ JOIN และจะมีการนำข้อจำกัดเกี่ยวกับขนาดไปใช้ โดยเฉพาะขนาดที่อยู่ทางด้านขวาของ JOIN (ในกรณีนี้คือจำนวนผู้เข้าชม) จะต้องน้อยกว่า 8 MB ใน Dremel ซึ่งเรียกว่า broadcast JOIN เมื่อไฟล์มีขนาดเกิน 8 MB คุณต้องทริกเกอร์shuffled JOIN ซึ่งทําได้โดยใช้ไวยากรณ์ JOIN EACH แต่ไม่สามารถใช้ IN ซึ่งสามารถเขียนการค้นหาใหม่ได้โดยใช้ JOIN
ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อผลิตภัณฑ์ A (อีคอมเมิร์ซที่เพิ่มประสิทธิภาพ)
ส่วนนี้คล้ายกับโครงสร้างการค้นหาก่อนหน้า แต่ทำงานกับอีคอมเมิร์ซที่เพิ่มประสิทธิภาพ นอกจากนี้ยังใช้ TABLE_DATE_RANGE
เพื่อการค้นหาข้อมูลเป็นเวลาหลายวัน
ผลิตภัณฑ์ที่ซื้อโดยลูกค้าที่ซื้อผลิตภัณฑ์ A (อีคอมเมิร์ซที่เพิ่มประสิทธิภาพ) |
---|
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity |
จำนวนการโต้ตอบของผู้ใช้โดยเฉลี่ยก่อนซื้อ
ข้อมูลด้านล่างนี้คือตัวอย่างของการค้นหาที่ใช้คำสั่ง JOIN() [...] ON
ซึ่งจะใช้ข้อมูลใน Google Analytics เท่านั้น
โครงสร้างสคริปต์สำหรับคำถามที่ว่าผู้ใช้มีการโต้ตอบโดยเฉลี่ยก่อนซื้อกี่ครั้งมีดังนี้
จำนวนการโต้ตอบของผู้ใช้ก่อนซื้อ |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
- ในบรรทัดแรกจะใช้การคำนวณทางคณิตศาสตร์หลักเพื่อหาการโต้ตอบของผู้ใช้โดยเฉลี่ยต่อผลิตภัณฑ์ และการค้นหานี้จะสร้างการรวมระหว่างการค้นหาย่อย 2 รายการ "Alias_Name_1" และ "Alias_Name_2"
- "Alias_Name_1" จะใช้ในการสร้างช่องที่ใช้ฟังก์ชันการรวม
SUM()
เพื่อรวมจำนวน Hit ทั้งหมดที่บันทึกไว้สำหรับผลิตภัณฑ์หนึ่ง - "Alias_Name_2" จะใช้ในการหาจำนวน Hit ที่เกิดจากผู้ใช้ต่อผลิตภัณฑ์โดยใช้ฟังก์ชัน
COUNT()
- บรรทัดสุดท้ายจะแสดงช่องร่วม (
hits.item.productSku
) ที่ใช้ร่วมกันระหว่างชุดข้อมูล 2 ชุดในการรวม
ข้อมูลด้านล่างคือตัวอย่างของการค้นหาที่ว่าผู้ใช้มีการโต้ตอบโดยเฉลี่ยก่อนซื้อกี่ครั้งในวันที่ 10 กันยายน 2013
จำนวนการโต้ตอบของผู้ใช้ก่อนซื้อในวันที่ 10 กันยายน 2013 |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
เปอร์เซ็นต์การขายจากสต็อกสินค้าต่อผลิตภัณฑ์
ข้อมูลด้านล่างคือตัวอย่างของการค้นหาที่ไม่ได้ใช้เฉพาะข้อมูล Analytics แต่ใช้ข้อมูลที่ไม่ได้มาจาก Analytics ด้วย การรวมชุดข้อมูลทั้งสองจะช่วยให้คุณเข้าใจพฤติกรรมของผู้ใช้ในระดับกลุ่มมากขึ้น คุณสามารถนำเข้าข้อมูลที่ไม่ได้มาจาก Analytics เข้าสู่ BigQuery แต่โปรดทราบว่าข้อมูลนี้จะมีค่าบริการจัดเก็บข้อมูลรายเดือนด้วย
โครงสร้างสคริปต์สำหรับคำถามที่ว่าผลิตภัณฑ์แต่ละรายการมีการขายจากสต็อกสินค้ากี่เปอร์เซ็นต์มีดังนี้
เปอร์เซ็นต์การขายจากสต็อกสินค้าต่อผลิตภัณฑ์ |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold |
- บรรทัดแรกให้ช่องข้อมูลออกมา 2 ช่อง โดยช่องหนึ่งจะมีรหัสผลิตภัณฑ์ทั้งหมด และอีกช่องหนึ่งจะเป็นการคำนวณทางคณิตศาสตร์ซึ่งแสดงเปอร์เซ็นต์การขายจากสต็อกสินค้าสำหรับรหัสผลิตภัณฑ์นั้น
- เนื่องจากการค้นหานี้จะใช้ชุดข้อมูล 2 ชุด คุณจึงต้องใช้ฟังก์ชัน
JOIN() ... ON
คำสั่งนี้จะรวมแถวจากชุดข้อมูล 2 ชุดเข้าด้วยกันตามเงื่อนไขของช่องร่วมที่ใช้ร่วมกัน ในกรณีนี้ ชุดข้อมูล 2 ชุดคือ[ ‘Imported_DataSet’ ]
และ‘Alias_Name’
[ ‘Imported_DataSet’ ]
เป็นข้อมูลที่ไม่ได้มาจาก Analytics ชุดข้อมูลนี้มีช่องเมตริกที่บอกให้ทราบว่ามีสินค้าเหลืออยู่ในสต็อกเป็นจำนวนเท่าใด (Imported DataSet.’stock_left_field’
) และช่องมิติข้อมูลรหัสผลิตภัณฑ์ (Imported_DataSet.’productId_field’
)"Alias_Name"
คือชื่อที่กำหนดให้กับข้อมูลที่ได้จากการค้นหาย่อยที่เป็นสีเทา การค้นหาย่อยนี้ใช้ข้อมูลจาก Analytics ในการหาจำนวนสินค้าที่ขายต่อผลิตภัณฑ์- ในบรรทัดสุดท้ายจะใช้คำสั่ง
ON
เพื่อแสดงช่องร่วมที่ใช้ร่วมกันระหว่างชุดข้อมูล 2 ชุด และเป็นที่ที่มีการรวมชุดข้อมูล 2 ชุดเข้าด้วยกัน
ตัวแปรที่ใช้ในการค้นหานี้จะมีชื่อชุดข้อมูลปรากฏอยู่ที่ด้านหน้า (เช่น Imported_DataSet.’productId_field’, Alias_Name.quantity_sold
). ซึ่งเป็นการบอกให้ทราบว่าคุณกำลังเลือกช่องใด และเป็นของชุดข้อมูลใด
ข้อมูลด้านล่างคือตัวอย่างของการค้นหาผลิตภัณฑ์แต่ละรายการมีการขายจากสต็อกสินค้ากี่เปอร์เซ็นต์ในวันที่ 28 กรกฎาคม 2013
เปอร์เซ็นต์การขายจากสต็อกสินค้าต่อผลิตภัณฑ์ในวันที่ 28 กรกฎาคม 2013 |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold |
ความสามารถในการทำกำไรของแต่ละผลิตภัณฑ์
ข้อมูลด้านล่างคือโครงสร้างสคริปต์สำหรับคำถามที่ว่าแต่ละผลิตภัณฑ์มีความสามารถในการทำกำไรเป็นอย่างไร
กำไรตามผลิตภัณฑ์ |
---|
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit |
- บรรทัดแรกมีการคำนวณทางคณิตศาสตร์ที่ใช้ในการคำนวณหากำไรรวมที่ได้รับจากแต่ละผลิตภัณฑ์
- การค้นหาย่อยที่เป็นสีเทาจะใช้ข้อมูลที่ไม่ใช่ของ Analytics ซึ่งรวบรวมข้อมูลเกี่ยวกับกำไรที่ได้รับเมื่อขายผลิตภัณฑ์
- การค้นหาย่อยสีแดงคือการค้นหาย่อยที่ใช้ข้อมูลจาก Analytics ซึ่งจะมีการนำไปรวมกับข้อมูลที่ไม่ใช่ของ Analytics การค้นหาย่อยนี้เป็นการคำนวณจำนวนสินค้าที่ขายต่อผลิตภัณฑ์
- บรรทัดสุดท้ายจะใช้คำสั่ง
ON
เพื่อระบุช่องที่ชุดข้อมูล 2 ชุดใช้ร่วมกัน ในกรณีนี้จะเป็นหมายเลขรหัสผลิตภัณฑ์
ข้อมูลด้านล่างคือตัวอย่างของการค้นหาแต่ละผลิตภัณฑ์มีความสามารถในการทำกำไรเป็นอย่างไรในวันที่ 28 กรกฎาคม 2013
กำไรตามผลิตภัณฑ์ในวันที่ 28 กรกฎาคม 2013 |
---|
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit |
คำนวณกำไรได้โดยการหาผลต่างระหว่างราคาขายผลิตภัณฑ์กับต้นทุนการผลิต ข้อมูลนี้ถูกจัดเก็บไว้ในชุดข้อมูลที่ไม่ใช่ของ GA
ความสามารถในการทำกำไรได้จริงของแต่ละผลิตภัณฑ์ (คำนึงถึงการขอเงินคืนด้วย)
ข้อมูลด้านล่างคือโครงสร้างสคริปต์สำหรับคำถามที่ว่าแต่ละผลิตภัณฑ์มีความสามารถในการทำกำไรได้จริงเป็นอย่างไร
กำไรที่แท้จริงตามผลิตภัณฑ์ |
---|
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
- ข้อมูลนี้มีความคล้ายคลึงอย่างมากกับการค้นหาแต่ละผลิตภัณฑ์มีความสามารถในการทำกำไรเป็นอย่างไร โดยมีข้อแตกต่างแค่เพียงในชุดข้อมูลที่ไม่ใช่ของ Analytics ในการค้นหาย่อยที่เป็นสีเทา และการคำนวณทางคณิตศาสตร์ในการคำนวณหากำไรที่แท้จริงในบรรทัดแรก
- ในชุดข้อมูลที่ไม่ได้มาจาก Analytics คุณจะคำนวณจำนวนเงินทั้งหมดที่ใช้ในการคืนเงิน (ในคำสั่ง
SELECT
ของการค้นหาย่อยสีแดง) - จากนั้นคุณจะใช้การคำนวณทางคณิตศาสตร์ในบรรทัดที่ 1 เพื่อหากำไรที่แท้จริงโดยนำรายได้ที่นำไปใช้ในการคืนเงินหักออกจากกำไรขั้นต้น
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการค้นหา โปรดดูที่ส่วนความสามารถในการทำกำไรของแต่ละผลิตภัณฑ์
ข้อมูลด้านล่างคือตัวอย่างของการค้นหาแต่ละผลิตภัณฑ์มีความสามารถในการทำกำไรได้จริงเป็นอย่างไรในวันที่ 28 กรกฎาคม 2013
กำไรที่แท้จริงตามผลิตภัณฑ์ในวันที่ 28 กรกฎาคม 2013 |
---|
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
กำไรที่แท้จริงจะคำนึงถึงความสามารถในการทำกำไรของผลิตภัณฑ์หลังจากที่หักออกจากผลิตภัณฑ์ที่มีการขอคืนเงินแล้ว รายได้ของผลิตภัณฑ์ก่อนหักเงินคืนสามารถคำนวณได้ดังนี้
รายได้ทั้งหมดของผลิตภัณฑ์ก่อนหักเงินคืน = ( ราคาผลิตภัณฑ์ + ค่าจัดส่งผลิตภัณฑ์ที่ขอเงินคืน ) * จำนวนผลิตภัณฑ์ที่ขอเงินคืน