การใช้เครื่องมือแก้ไขคำค้นหา ShopifyQL
<<<<<<< HEAD:content/th/manual/reports-and-analytics/shopify-reports/new-analytics/shopifyql-editor.md
======= >>>>>>> a8772b4ba2f5 (Relocated all the pages from /new-analytics/ to existing folders.):content/th/manual/reports-and-analytics/shopify-reports/report-types/shopifyql-editor.mdคุณสามารถใช้ ShopifyQL ร่วมกับตัววิเคราะห์ข้อมูลใหม่ของ Shopify เพื่อสำรวจฐานข้อมูลของธุรกิจคุณ และกู้คืนข้อมูลที่ช่วยให้คุณเข้าใจธุรกิจของคุณในเชิงลึกมากขึ้น
ShopifyQL หรือ_ภาษาแบบสอบถามของ Shopify_ คือภาษาแบบสอบถามของ Shopify ที่สร้างขึ้นเพื่อการค้า ภาษาแบบสอบถามจะใช้ในการร้องขอและกู้คืนข้อมูลจากฐานข้อมูล ข้อมูลของร้านค้าคุณจะถูกเก็บไว้ในตารางฐานข้อมูล มีโครงสร้างในคอลัมน์และแถวที่กําหนดไว้ คอลัมน์จะกําหนดประเภทของข้อมูลที่มี เช่น ยอดขาย และแถวจะระบุค่าจริงของประเภทข้อมูล เช่น ยอดขาย 2,450 ดอลลาร์สหรัฐ
หากต้องการกู้คืนข้อมูลของคุณในรูปแบบที่มีความหมาย จะต้องส่ง_การสอบถาม_ไปยังฐานข้อมูล คำค้นหาคือคําถามที่ขอข้อมูลเฉพาะเป็นคําตอบ โดยประกอบด้วย_คำสำคัญ_และ_พารามิเตอร์_ที่สอดคล้องกัน การรวมคำสำคัญหลายคํากับพารามิเตอร์เฉพาะจะเป็นการสร้างคําค้นหาของคุณ หลังจากที่คุณได้สร้างคำค้นหาแล้ว คุณสามารถใช้งานและรับรายงานได้
อภิธานศัพท์
ข้อกำหนด | ความหมาย |
---|---|
ขนาด | คุณลักษณะที่แบ่งกลุ่มข้อมูลเพื่อให้จัดเรียงและนําเสนอได้ชัดเจนมากขึ้น ตัวอย่างทั่วไปของขนาดได้แก่ เวลา สินค้า และสถานที่ ขนาดจะถูกใช้เป็นพารามิเตอร์ใน ShopifyQL |
คำสำคัญ | ไวยากรณ์ของ ShopifyQL ที่กระจัดกระจายเป็นข้อความสั่งเพื่อส่งการสอบถามของคุณโดยตรง |
ตัวชี้วัด | การวัดข้อมูลเป็นปริมาณ ตัวอย่างทั่วไปของเกณฑ์ชี้วัดได้แก่ ยอดขายรวม จํานวนของคำสั่งซื้อ และกําไรขั้นต้น |
พารามิเตอร์ | ไวยากรณ์ของ ShopifyQL ที่ระบุองค์ประกอบของฐานข้อมูลหรือรายละเอียดที่จะรวมอยู่ในแบบสอบถามของคุณ |
ตัวดำเนินการ | ข้อความหรืออักขระที่สงวนไว้ซึ่งใช้เป็นส่วนหนึ่งของคำค้นหา ตัวอย่างได้แก่ STARTS WITH >= หรือ last_week
|
คุณต้องปฏิบัติตามข้อกำหนดต่อไปนี้เมื่อสร้างคำค้นหารายงานที่ถูกต้องโดยใช้ ShopifyQL
- คุณจะสร้างคำค้นหาทั้งหมดเพียงบรรทัดเดียวหรือแยกทีละบรรทัดก็ได้
- คุณต้องใส่คำสำคัญ
FROM
และSHOW
อย่างน้อยหนึ่งรายการพร้อมกับพารามิเตอร์ที่เกี่ยวข้อง คำสำคัญและพารามิเตอร์อื่นๆ ทั้งหมดจะใส่หรือไม่ก็ได้ - คำสำคัญทั้งหมดในคําค้นหาต้องอยู่ในลำดับต่อไปนี้
1.
FROM
2.SHOW
3.WHERE
4.GROUP BY
5.TIMESERIES
6.WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
7.HAVING
8.SINCE
และUNTIL
หรือDURING
9.COMPARE TO
และไม่บังคับUNTIL
10.ORDER BY
11.LIMIT
12.VISUALIZE
และTYPE
นี่คือตัวอย่างของ ShopifyQL ที่เขียนเป็นคำค้นหาโดยใช้ไวยากรณ์ที่ถูกต้อง คำสำคัญเป็นตัวหนา พารามิเตอร์ที่สอดคล้องกันของคำนั้นๆ จะรวมอยู่โดยใช้ตัวยึดตำแหน่งทั่วไป และพารามิเตอร์ที่เป็นตัวเลือกจะอยู่ในวงเล็บ
FROM table_name1, table_name2, ...
SHOW column1 { AS alias }, column2 { AS alias }, ...
WHERE condition
GROUP BY dimension
TIMESERIES time_dimension
WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
HAVING condition
SINCE date_offset
UNTIL date_offset
DURING named_date_range
COMPARE TO [date_offset, ...]
ORDER BY column { ASC | DESC }
LIMIT number { OFFSET number }
VISUALIZE [alias1, alias2, ...]
TYPE { visualization_type }
LIMIT number
คำสำคัญ ShopifyQL
การสอบถามของ ShopifyQL สามารถแบ่งช่วงได้จากส่วนพื้นฐาน ข้อมูลเชิงลึกของข้อมูลระดับสูง และแบบครอบคลุม เพื่อดูรายละเอียดข้อมูลเชิงลึก แต่ละคีย์เวิร์ดมีฟังก์ชันเฉพาะที่สร้างจากการสอบถามของคุณ
คำสำคัญ | คำอธิบาย |
---|---|
FROM | ระบุว่าตารางชุดข้อมูลใดเพื่อเลือกข้อมูล |
SHOW | เลือกคอลัมน์ที่คุณต้องการแยกจากตารางชุดข้อมูล |
ดดดWHERE | กําหนดเงื่อนไขหรือเงื่อนไขที่ต้องเลือกแถว |
GROUP BY | จัดกลุ่มข้อมูลที่แยกออกมาตามขนาดมิติหรือเวลา |
TIMESERIES | แยกการจัดกลุ่มตามเวลา มิติ และเติมวันที่ในคำค้นหา |
WITH | แก้ไขพฤติกรรมของคำสำคัญ ShopifyQL บางคํา |
HAVING | กรองผลลัพธ์ของคำค้นหาหลังจากที่มีการจัดกลุ่ม |
SINCE | แสดงข้อมูลตั้งแต่วันที่ระบุไว้ในอดีต มักใช้คู่กับ UNTIL
|
UNTIL | แสดงข้อมูลจนถึงวันที่ระบุในอดีต มักใช้คู่กับ SINCE หรือ COMPARE TO
|
DURING | แสดงข้อมูลในช่วงเวลาที่ระบุในอดีต |
COMPARE TO | แสดงข้อมูลเพื่อเปรียบเทียบกับเวลาที่ระบุในอดีต |
ORDER BY | ระบุคอลัมน์ที่จะสั่งซื้อข้อมูล |
LIMIT | จํากัดจํานวนแถวของข้อมูลที่จะแสดง |
VISUALIZE | แสดงข้อมูลของคุณบนเส้นหรือแถบการแสดงภาพ คุณสามารถระบุการแสดงภาพที่คุณต้องการด้วย TYPE
|
AS | คำสำคัญเสริมที่เปลี่ยนชื่อคอลัมน์เป็นชื่อที่คุณเลือก |
การสร้างคำค้นหา ShopifyQL ที่ง่ายที่สุดต้องใช้คำสำคัญสองคำเท่านั้น: FROM
และSHOW
ซึ่งเขียนไว้ในคำสั่งซื้อนั้น FROM
ตามด้วยพารามิเตอร์ชื่อตารางอย่างน้อยหนึ่งพารามิเตอร์ที่จะระบุว่าตารางใดที่คุณต้องการสอบถาม SHOW
ตามด้วยพารามิเตอร์ชื่อคอลัมน์จำนวนเท่าใดก็ได้ที่จะระบุคอลัมน์ที่คุณต้องการเลือก
SHOW
สามารถใช้เพื่อระบุลำดับที่จะส่งคืนตัวชี้วัดและมิติในรายงานได้
ตัวอย่างเช่น คุณสามารถส่งคืนผลรวมของยอดขายทั้งหมดโดยเขียนคำค้นหานี้
FROM sales
SHOW total_sales
WHERE
โดยคำสำคัญ WHERE
นี้จะช่วยให้คุณสามารถใช้ตัวกรองมิติกับคำค้นหาทั้งหมดของ ShopifyQL ได้ ตัวกรองสามารถแก้ไขได้โดยตัวดำเนินการเปรียบเทียบ ทั้งสองตัว (เช่น มากกว่า >
) ตัวดำเนินการทางตรรกะ (เช่น AND
หรือ NOT
) และการจับคู่สตริงและอาร์เรย์บางส่วน (เช่น STARTS WITH
และ CONTAINS
)
WHERE
เงื่อนไขต้องเป็นไปตามข้อกำหนดต่อไปนี้
- ค่าต้องรวมไว้ในอัญประกาศเดี่ยว (') ไม่ใช่อัญประกาศคู่ (")
- เงื่อนไขไม่สามารถมีเลขคณิตใดๆ ได้
- เงื่อนไขสามารถอ้างอิงได้เฉพาะมิติเท่านั้น ไม่ใช่ตัวชี้วัด
ตัวอย่างเช่น หากคุณต้องการคืนยอดขายทั้งหมด แต่กรองตามประเทศสำหรับเรียกเก็บเงิน คำค้นหาของคุณจะเป็น
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'
GROUP BY product_title, product_type, product_vendor
เช่นเดียวกับในตัวอย่างข้างต้น คุณสามารถกรองผลลัพธ์ที่ตั้งค่าด้วยพารามิเตอร์ WHERE
ได้ แม้พารามิเตอร์นั้นจะไม่รวมอยู่ในคำสำคัญ SHOW
ของคุณ ในกรณีนี้ ยอดขายทั้งหมดจะถูกกรองตามการสั่งซื้อคำสั่งซื้อจากแคนาดาเท่านั้น แม้ว่า billing_country
จะไม่รวมอยู่ในชุดผลลัพธ์
ผู้ประกอบการเปรียบเทียบ
คำสำคัญ WHERE
ใช้ตัวดำเนินการการเปรียบเทียบในการกรองข้อมูล ในตัวอย่างด้านบน ได้ใช้ =
เพื่อระบุว่าคำค้นหาจะกรองตามค่าที่ระบุ อย่างไรก็ตาม มีตัวดำเนินการอื่นๆ ให้คุณเลือกใช้
ตัวดำเนินการเปรียบเทียบ | คำอธิบาย |
---|---|
= | เท่ากับ |
!= | ไม่เท่ากับ |
< | น้อยกว่า |
> | มากกว่า |
<= | น้อยกว่าหรือเท่ากับ |
>= | มากกว่าหรือเท่ากับ |
หากต้องการกรองข้อมูลของคุณเพิ่มเติม คุณสามารถเพิ่มผู้ประกอบการตรรกะไปยังแบบสอบถามของคุณ ตัวประกอบตรรกะ ShopifyQL ได้แก่:
ตัวประกอบตรรกะ | คำอธิบาย |
---|---|
AND | กรองเพื่อรวมแถวทั้งหมดที่ตรงตามเงื่อนไขซึ่งคั่นด้วย AND
|
OR | กรองเพื่อรวมแถวทั้งหมดที่ตรงตามเงื่อนไขใดเงื่อนไขหนึ่งซึ่งคั่นด้วย OR
|
NOT | กรองเพื่อรวมเฉพาะแถวที่ไม่ตรงตามเงื่อนไข เช่น แถวที่ไม่มีค่าที่ระบุ |
คุณสามารถใช้ตัวกรองหลายตัวกรองกับคำสำคัญ WHERE
โดยการเพิ่มตัวดำเนินการทางตรรกะ
การเพิ่มไปยังคำค้นหาชุดข้อมูลตัวอย่าง เพื่อรับการจัดกลุ่มยอดขายสุทธิรายเดือนสำหรับคำสั่งซื้อทั้งหมดที่มีลูกพีชแห้งซึ่งมีที่อยู่สำหรับเรียกเก็บเงินอยู่ในแคนาดาและใช้ส่วนลด คำค้นหาจะมีลักษณะดังนี้
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country = 'Canada' AND product_title = 'Dried Peaches' AND is_discounted_sale = true
GROUP BY product_title, product_type, product_vendor
GROUP BY
หากต้องการแบ่งตัวชี้วัดตามขอบเขต เช่น รวมยอดขายเป็นกลุ่มตามภูมิภาค ให้ใช้คำสำคัญ GROUP BY
สามารถจับคู่คำสำคัญ GROUP BY
กับพารามิเตอร์ขอบเขตใดก็ได้
ตัวอย่างเช่น การสอบถามที่จัดกลุ่มยอดขายรวมตามประเทศและภูมิภาคสำหรับเรียกเก็บเงินจะเขียนไว้ ดังนี้:
FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region
นี่คือตัวอย่างคำค้นหาที่ใช้ขอบเขตด้านเวลาเพื่อแสดงยอดขายรวมตามเดือน:
FROM sales
SHOW total_sales
GROUP BY month
คำค้นหาข้างต้นไม่แสดงผลเดือนที่คุณไม่มียอดขาย หากคุณต้องการให้คำค้นหาแสดงช่วงเวลาทั้งหมดแบบไม่ขาดตอน ให้ใช้คำสำคัญTIMESERIES
FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today
ขนาดเวลา
นี่คือขนาดเวลาที่คุณสามารถใช้เพื่อจัดกลุ่มข้อมูลได้:
ตัวดำเนินการ | คำอธิบาย |
---|---|
second | จัดกลุ่มตามวินาทีในหนึ่งชั่วโมง |
minute | จัดกลุ่มตามนาทีในหนึ่งชั่วโมง |
hour | การจัดกลุ่มตามชั่วโมงของวันตามปฏิทิน |
day | จัดกลุ่มตามวันที่ในปฏิทิน |
week | จัดกลุ่มตามสัปดาห์ในปฏิทิน |
month | การจัดกลุ่มตามเดือนปฏิทิน |
quarter | การจัดกลุ่มตามไตรมาสในปฏิทิน |
year | การจัดกลุ่มตามปีปฏิทิน |
hour_of_day | การจัดกลุ่มตามเวลา 24 ชั่วโมงโดยเริ่มจากศูนย์ (0, 1, ..., 23) |
day_of_week | การจัดกลุ่มตามวันในสัปดาห์โดยเริ่มจากศูนย์ (0, 1, ... , 6) |
week_of_year | การจัดกลุ่มตามสัปดาห์ของปี (1, 2, ..., 52) |
month_of_year | จัดกลุ่มตามเดือนในปี (1, 2, ..., 12) |
คุณสามารถใช้คำสำคัญ TIMESERIES
เมื่อคุณต้องการแยกการจัดกลุ่มตามมิติเวลา ดูตัวชี้วัดตามเวลา และเติมวันที่ในคำค้นหาเพื่อเปลี่ยนเป็นกราฟอนุกรมเวลาที่ไม่มีข้อมูล
ในตัวอย่างนี้ คุณกำลังเติมข้อมูลยอดขายทั้งหมดที่ขาดหายไปในช่วง 15 วันที่ผ่านมา
FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d
TIMESERIES และลำดับคอลัมน์
ลำดับคอลัมน์สามารถเปลี่ยนได้ โดยขึ้นอยู่กับว่ามีการกำหนด TIMESERIES
และอยู่ในค่า GROUP BY
หรือ SHOW
หรือไม่
TIMESERIES | SHOW | GROUP BY | ผลลัพธ์ |
---|---|---|---|
กำหนด | ไม่มีอยู่ | ไม่มีอยู่ | มิติ TIMESERIES คือมิติแรก |
กำหนด | ไม่มีอยู่ | นำเสนอ | ตําแหน่งของมิติเวลาจะถูกกําหนดโดยตําแหน่งของ GROUP BY
|
กำหนด | นำเสนอ | นำเสนอ | ตําแหน่งของมิติเวลาจะถูกกําหนดโดยตําแหน่งของ SHOW
|
ไม่ได้รับ | ไม่มีอยู่ | นำเสนอ | ตําแหน่งของมิติเวลาจะถูกกําหนดโดยตําแหน่งของ GROUP BY ระบบยังไม่ได้เติมข้อมูล |
ไม่ได้รับ | นำเสนอ | นำเสนอ | ตําแหน่งของมิติเวลาจะถูกกําหนดโดยตําแหน่งของ SHOW ระบบยังไม่ได้เติมข้อมูล |
ไม่ได้รับ | นำเสนอ | ไม่มีอยู่ | ทริกเกอร์ข้อผิดพลาดทางไวยากรณ์เนื่องจาก SHOW อ้างอิงได้เฉพาะมิติที่มีอยู่ใน GROUP BY เท่านั้น |
คุณสามารถใช้คำสำคัญ HAVING
เพื่อกรองผลลัพธ์คำค้นหาหลังจากที่มีการจัดกลุ่มแล้วได้ ซึ่งคล้ายกับ WHERE
ตัวกรองอาจมีเงื่อนไขหนึ่งเงื่อนไข แต่เงื่อนไขสามารถแก้ไขได้โดยทั้งตัวดำเนินการเปรียบเทียบ (เช่น มากกว่า >
) และตัวดำเนินการทางตรรกะ (เช่นAND
หรือ NOT
) โดย HAVING
สามารถอ้างอิงคอลัมน์นามแฝง ฟังก์ชันรวม และการจัดกลุ่มได้ ซึ่งต่างจาก WHERE
HAVING
กำหนดให้คำค้นหาต้องมี GROUP BY
หรืออนุประโยค TIMESERIES
เนื่องจาก HAVING
จะกรองผลลัพธ์ของคำค้นหาหลังจากที่จัดกลุ่มโดย GROUP BY
หรือ TIMESERIES
ในตัวอย่างนี้ คุณกำลังกรองยอดขายทั้งหมดของสินค้าแต่ละรายการที่มียอดขายทั้งหมดมากกว่า 1000 แต่น้อยกว่า 5000
FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000
WITH
คำสำคัญ WITH
จะแก้ไขพฤติกรรมของคำสำคัญอื่นๆ บางส่วนของ ShopifyQL โดยจะมีการแก้ไขทั้งหมด 3 แบบต่อไปนี้
TOTALS
: ระบุข้อมูลสรุปตัวชี้วัดระดับสูงก่อนที่จะแยกย่อยตามมิติGROUP_TOTALS
: ระบุยอดรวมของการจัดกลุ่มย่อยทั้งหมดเมื่อมีกลุ่มตามการรวมกลุ่มPERCENT_CHANGE
: เพิ่มตัวชี้วัดเปอร์เซ็นต์การเปลี่ยนแปลงให้กับแต่ละคอลัมน์การเปรียบเทียบในCOMPARE TO
เมื่อมีการใช้ตัวแก้ไขนี้ คอลัมน์ใหม่จะถูกเพิ่มไปยังคอลัมน์ตัวชี้วัดการเปรียบเทียบแต่ละคอลัมน์ที่มีเปอร์เซ็นต์การเปลี่ยนแปลง
TOTALS
ตัวแก้ไข TOTALS
นี้จะระบุข้อมูลสรุปตัวชี้วัดระดับสูงก่อนที่จะแยกย่อยตามมิติ เมื่อคุณใช้งาน WITH TOTALS
คำค้นหาจะแสดงผลยอดรวมเป็นคอลัมน์พิเศษในผลลัพธ์ที่ตั้งด้วยชื่อตัวชี้วัดและ “ยอดรวม” โดยเป็นส่วนหนึ่งของชื่อคอลัมน์ แต่ละแถวจะมียอดรวมที่เกี่ยวข้องทั้งหมด
ตัวอย่างเช่น คำค้นหานี้แสดงยอดรวมของยอดขายทั้งหมด
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
คำค้นหานี้อาจแสดงผลรายงานที่คล้ายกับข้อความนี้
วันที่ | ยอดขายรวม | ยอดขายสุทธิ | ยอดขายรวม |
---|---|---|---|
ข้อมูลสรุป | 6 | 15 | 24 |
2024-01-01 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
2024-01-03 | 3 | 6 | 9 |
ตัวแก้ไข GROUP_TOTALS
นี้ระบุยอดรวมของการจัดกลุ่มย่อยทั้งหมดเมื่อมีกลุ่มตามการรวมกลุ่ม เมื่อคุณใช้ WITH GROUP_TOTALS
ค้นหาจะแสดงผลยอดรวมเป็นคอลัมน์พิเศษในผลลัพธ์ที่ตั้งชื่อด้วยชื่อตัวชี้วัด มิติยอดรวม และ “ยอดรวม” เป็นส่วนหนึ่งของชื่อคอลัมน์ แต่ละแถวจะมียอดรวมที่เกี่ยวข้องทั้งหมด
ตัวอย่างเช่น คำค้นหานี้แสดงยอดรวมของยอดขายทั้งหมดตามประเทศสำหรับเรียกเก็บเงิน
FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS
คำค้นหานี้อาจแสดงผลรายงานที่คล้ายกับข้อความนี้
ประเทศ | ID ลูกค้า | ยอดขายรวม |
---|---|---|
ข้อมูลสรุป (สหรัฐอเมริกาและแคนาดา) | - | 1 |
ยอดรวมกลุ่มสหรัฐอเมริกา | - | 0 |
สหรัฐฯ | 1 | 1 |
สหรัฐฯ | null | -1 |
ยอดรวมกลุ่มแคนาดา | - | 1 |
แคนาดา | 1 | 1 |
ตัวแก้ไข PERCENT_CHANGE
ปรับเพิ่มตัวชี้วัดเปอร์เซ็นต์การเปลี่ยนแปลงให้กับคอลัมน์การเปรียบเทียบแต่ละคอลัมน์เมื่อใช้ COMPARE TO
เมื่อคุณใช้งาน WITH PERCENT_CHANGE
คำค้นหาจะแสดงผลเปอร์เซ็นต์การเปลี่ยนแปลงของตัวชี้วัดการเปรียบเทียบแต่ละตัวเป็นคอลัมน์พิเศษในผลลัพธ์ที่ตั้งชื่อด้วยชื่อตัวชี้วัดและ “เปอร์เซ็นต์dkiเปลี่ยนแปลง” เป็นส่วนหนึ่งของชื่อคอลัมน์
สูตรที่ใช้คํานวณเปอร์เซ็นต์การเปลี่ยนแปลงคือ (base_column - comparison_column) * 100 / abs(comparison_column)
ตัวอย่างเช่น คำค้นหานี้ใช้ SINCE
และ COMPARE TO
เพื่อเปรียบเทียบยอดขายสุทธิต่อวันในเดือนที่ผ่านมากับเดือนเดียวกันในปีก่อนหน้า โดยมีคอลัมน์เปอร์เซ็นต์การเปลี่ยนแปลง
FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
คอลัมน์ในรายงานผลลัพธ์ประกอบด้วยวัน ยอดขายสุทธิ วันที่เปรียบเทียบ ยอดขายสุทธิที่เปรียบเทียบ และยอดขายสุทธิที่มีเปอร์เซ็นต์การเปลี่ยนแปลง
SINCE และ UNTIL
หากคุณต้องการกรองคําค้นหาตามวันที่หรือช่วงเวลาหนึ่ง คุณสามารถใช้คำสำคัญ SINCE
และ UNTIL
รวมถึงพารามิเตอร์ที่เกี่ยวข้องได้ คำสำคัญเหล่านี้เป็นคำเฉพาะเนื่องจากเป็นการกรองเฉพาะช่วงเวลาเท่านั้น หากคุณใช้ SINCE
และไม่ได้กำหนดค่า UNTIL
ช่วงเวลาสิ้นสุดของคุณจะเป็น today
ตามค่าเริ่มต้น
ตัวอย่างเช่น นี่คือคำค้นหายอดขายสุทธิในช่วง 12 เดือนที่ผ่านมาในแคนาดา โดยสิ้นสุดเมื่อวานนี้
FROM sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
ตัวดำเนินการชดเชย
คุณสามารถกรองตามวันที่ที่เฉพาะเจาะจงหรือตามการชดเชนวันที่และเวลา ตัวดำเนินการการชดเชยของ ShopifyQL ได้แก่
ตัวดำเนินการชดเชย | คำอธิบาย |
---|---|
-{#}s | จำนวนวินาทีที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}min | จำนวนนาทีที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}h | จำนวนชั่วโมงที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}d | จำนวนวันที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}w | จำนวนสัปดาห์ที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}m | จำนวนเดือนที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}q | จํานวนไตรมาสที่ผ่านมาจากวันที่และเวลาที่เรียกใช้คำค้นหา |
-{#}y | จำนวนปีที่ผ่านมาโดยนับตั้งแต่วันที่และเวลาที่เรียกใช้คำค้นหา |
yyyy-MM-dd | วันที่ใดวันที่หนึ่ง |
yyyy-MM-ddThh:mm:ss | วันที่และเวลาที่เจาะจง |
คุณสามารถใช้ฟังก์ชันต่อไปนี้ร่วมกับตัวดำเนินการช่วงวันที่ (ยกเว้นวันที่ที่ระบุ) ใน SINCE
และ UNTIL
ได้ ฟังก์ชัน “startOf...
” จะตัดทอนให้สั้นลงให้เริ่มต้นที่หน่วยเวลาที่เกี่ยวข้อง (นาที ชั่วโมง วัน สัปดาห์ เดือน ไตรมาส และปี) เมื่อใช้กับ SINCE
และฟังก์ชัน “endOf...
” จะตัดทอนให้สั้นลงให้สิ้นสุดที่หน่วยเวลาที่เกี่ยวข้องเมื่อใช้กับ UNTIL
หน่วยฟังก์ชันวันที่และหน่วยการดำเนินการต้องตรงกันเพื่อแสดงผลลัพธ์ที่ถูกต้อง ตัวอย่างเช่น startOfMonth(-1m)
ถูกต้อง แต่ startOfMonth(-1d)
ไม่ถูกต้อง
ฟังก์ชันวันที่ | คำอธิบาย |
---|---|
now | วันที่และเวลาที่เรียกใช้คำค้นหา |
startOfMinute(-{#}min) | ตัดทอนตัวดำเนินการช่วงวันที่ให้เริ่มต้นที่นาทีเป้าหมาย |
endOfMinute(-{#}min) | ตัดทอนตัวดำเนินการช่วงวันที่ให้สั้นลงให้สิ้นสุดที่นาทีเป้าหมาย |
startOfHour(-{#}h) | ตัดทอนตัวดำเนินการช่วงวันที่ให้สั้นลงให้เริ่มต้นที่ชั่วโมงเป้าหมาย |
endOfHour(-{#}h) | ตัดทอนตัวดำเนินการช่วงวันที่ให้สิ้นสุดที่ชั่วโมงเป้าหมาย |
startOfDay(-{#}d) | ตัดทอนตัวดำเนินการช่วงวันที่ให้สั้นลงให้เริ่มต้นที่วันเป้าหมาย |
endOfDay(-{#}d) | ตัดทอนตัวดำเนินการช่วงวันที่ให้สั้นลงให้สิ้นสุดที่วันเป้าหมาย | startOfWeek(-{#}w) | ตัดทอนตัวดำเนินการช่วงวันที่ให้สั้นลงให้เริ่มต้นที่สัปดาห์เป้าหมาย |
ตัวอย่างเช่น หากวันนี้เป็นวันที่ 8 พฤศจิกายน 2022 คุณสามารถใช้คำค้นหาต่อไปนี้เพื่อแสดงผลยอดขายรวมตั้งแต่วันที่ 1 มกราคม 2020 ถึง 31 ตุลาคม 2022
FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)
DURING
คำสำคัญ DURING
ช่วยให้กรองช่วงวันที่ และแทนที่การใช้ SINCE
และ UNTIL
ได้ง่ายดายยิ่งขึ้น คุณสามารถใช้คำสำคัญ DURING
เพื่อกรองผลลัพธ์การค้นหาในช่วงเวลาที่ระบุได้ เช่น ปีปฏิทินหรือเดือนที่ระบุ หรือช่วงวันที่ที่มีการกำหนดวันที่แตกต่างในแต่ละปี เช่น Black Friday Cyber Monday ตัวอย่างเช่น
FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021
ตัวดำเนินการช่วงวันที่ที่ตั้งชื่อ
DURING
สามารถใช้กับตัวดำเนินการช่วงวันที่ที่ตั้งชื่อดังต่อไปนี้ได้
ตัวดำเนินการช่วงวันที่ที่ตั้งชื่อ | คำอธิบาย |
---|---|
today | วันที่ที่เรียกใช้คำค้นหา |
yesterday | ช่วงเวลา 24 ชั่วโมงก่อนหน้านับตั้งแต่มีการเรียกใช้คำค้นหา |
this_week | สัปดาห์ปัจจุบันในปฏิทิน |
this_month | เดือนปัจจุบันในปฏิทิน |
this_quarter | ไตรมาสปัจจุบันในปฏิทิน |
this_year | ปีปฏิทินปัจจุบัน |
last_week | สัปดาห์ก่อนหน้าในปฏิทิน |
last_month | เดือนก่อนหน้าในปฏิทิน |
last_quarter | ไตรมาสก่อนหน้าในปฏิทิน |
last_year | ปีปฏิทินก่อนหน้า |
bfcmYYYY | ช่วง Black Friday Cyber Monday ที่เลือกได้ในช่วงปีที่ระบุ ตัวอย่างเช่น bfcm2022 แสดงผลลัพธ์วันที่ 25-28 พฤศจิกายน 2022 |
COMPARE TO
คำสำคัญ COMPARE TO
ช่วยให้คุณสามารถเปรียบเทียบข้อมูลในช่วงวันที่ใน SINCE
และ UNTIL
หรือ DURING
และใน COMPARE TO
ได้
คุณสามารถใช้คำสำคัญ COMPARE TO
กับพารามิเตอร์ประเภทต่อไปนี้ได้
วันที่ที่แน่นอน เช่น
2023-01-01
: รวมตัวชี้วัดสำหรับช่วงเวลาที่กำหนดและตัวชี้วัดการเปรียบเทียบสำหรับช่วงเวลาเดียวกันในวันที่ที่แน่นอนวันที่ที่ตั้งชื่อ เช่น
last_week
: รวมตัวชี้วัดสำหรับช่วงเวลาที่กำหนดและตัวชี้วัดการเปรียบเทียบสำหรับช่วงเวลาเดียวกันในวันที่ที่ตั้งชื่อ - ตัวดำเนินการที่ใช้โดยCOMPARE TO
ไม่จำเป็นต้องมีระยะเวลาเท่ากับตัวดำเนินการที่ใช้โดยDURING
หากไม่มีค่าUNTIL
ระบบจะคํานวณช่วงเวลาให้เท่ากับค่าที่ระบุไว้ในDURING
ตัวอย่างเช่นDURING this_week COMPARE TO last_month
เปรียบเทียบข้อมูลของสัปดาห์นี้กับระยะเวลาหนึ่งสัปดาห์ที่เริ่มต้นในช่วงต้นเดือนที่ผ่านมาวันที่ชดเชย เช่น
-3q
: รวมตัวชี้วัดสำหรับช่วงเวลาที่กำหนดและตัวชี้วัดการเปรียบเทียบสำหรับช่วงเวลาเดียวกันในวันที่ที่สัมพันธ์กันการเปรียบเทียบหลายวันที่ เช่น
-1y, -2y
: เปรียบเทียบข้อมูลของคุณจากช่วงวันที่ที่เจาะจงกับช่วงวันที่อื่นๆ หลายรายการ ซึ่งจะเป็นประโยชน์เมื่อคุณต้องการติดตามการเปลี่ยนแปลงในช่วงระยะเวลาต่างๆหากคุณใช้มิติวันที่ในคำค้นหาที่มี
COMPARE TO
คุณต้องใช้TIMESERIES
แทนGROUP BY
ตัวอย่างต่อไปนี้เปรียบเทียบยอดขายสุทธิของเดือนก่อนหน้ากับเดือนเดียวกันในปีก่อนหน้า
FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
ตัวดำเนินการช่วงวันที่ที่สัมพันธ์กัน
ตัวดำเนินการที่สัมพันธ์กันจะแสดงผลระยะเวลาที่เหมือนกับช่วงวันที่พื้นฐาน โดยเลื่อนกลับตามช่วงเวลาที่ระบุ นอกเหนือจากตัวดำเนินการช่วงวันที่ที่มีชื่อแล้ว COMPARE TO
ให้ยอมรับตัวดำเนินการที่สัมพันธ์กันต่อไปนี้
ตัวดำเนินการช่วงวันที่ที่สัมพันธ์กัน | คำอธิบาย |
---|---|
previous_period | หนึ่งช่วงเวลาก่อนช่วงวันที่เริ่มต้น |
previous_year | หนึ่งปีก่อนช่วงวันที่เริ่มต้น |
previous_quarter | หนึ่งไตรมาสก่อนช่วงวันที่เริ่มต้น |
previous_month | หนึ่งเดือนก่อนช่วงวันที่พื้นฐาน |
previous_week | หนึ่งสัปดาห์ก่อนช่วงวันที่เริ่มต้น |
previous_day | หนึ่งวันก่อนช่วงวันที่เริ่มต้น |
previous_hour | หนึ่งชั่วโมงก่อนช่วงวันที่เริ่มต้น |
previous_minute | หนึ่งนาทีก่อนช่วงวันที่เริ่มต้น |
previous_second | หนึ่งวินาทีก่อนช่วงวันที่เริ่มต้น |
คุณสามารถระบุวิธีที่คุณต้องการจัดเรียงข้อมูลที่แสดงผลโดยคำค้นหาของคุณได้โดยการใช้คำสำคัญ ORDER BY
และพารามิเตอร์ของคำดังกล่าว คือ ASC
สำหรับคำสั่งซื้อที่เรียงจากน้อยไปหามาก และ DESC
สำหรับคำสั่งซื้อที่เรียงจากมากไปหาน้อย
คุณสามารถระบุตัวชี้วัดหรือขอบเขตใดๆ ที่คุณรวมไว้ในคำค้นหาในคำสำคัญ ORDER BY
ได้ รวมถึงช่องหลายช่อง
ตัวอย่างเช่น คำค้นหานี้จะแสดงผลยอดขายสุทธิของสินค้าและตัวเลือกสินค้าทั้งหมดในปีที่ผ่านมา ผลลัพธ์จะเรียงตามตัวอักษรของชื่อสินค้าก่อน จากนั้นจะเรียงตามตัวอักษรจากหลังมาหน้าตามประเภทสินค้า
FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC
ลำดับการเขียนตัวชี้วัดหรือขอบเขตนั้นมีความสำคัญ หากคุณระบุค่าหลายค่าใน ORDER BY
ระบบจะจัดเรียงแต่ละตัวชี้วัดหรือขอบเขตตามลำดับที่ระบุไว้
TIMESERIES และลำดับคอลัมน์
ลำดับคอลัมน์สามารถเปลี่ยนได้ โดยขึ้นอยู่กับว่าคำค้นหามี TIMESERIES
และ ORDER BY
หรือไม่
TIMESERIES | ORDER BY | ผลลัพธ์ |
---|---|---|
นำเสนอ | ไม่มีอยู่ | ผลลัพธ์จะเรียงลำดับตามมิติ TIMESERIES
|
นำเสนอ | นำเสนอ | ผลลัพธ์จะเรียงลำดับตามมิติเวลา TIMESERIES จากนั้นตามมิติ ORDER BY
|
ไม่มีอยู่ | นำเสนอ | ผลลัพธ์จะเรียงลำดับตามมิติ ORDER BY
|
ไม่มีอยู่ | ไม่มีอยู่ | ผลลัพธ์จะเรียงลำดับตามคอลัมน์ SHOW แรก |
คำสำคัญ LIMIT
ช่วยให้คุณระบุจํานวนแถวสูงสุดที่จะคำค้นหาจะแสดงผล ซึ่งจะเป็นประโยชน์เมื่อคุณเพียงต้องการเข้าใจลักษณะการแสดงข้อมูลในแต่ละคอลัมน์ หรือรายงานที่มีขนาดใหญ่กว่าที่คำค้นหาอาจใช้เวลานานในการคืนค่า คุณสามารถรวม LIMIT
เข้ากับ ORDER BY
เพื่อสร้างรายการที่มีด้านบนและด้านล่างได้
หากคุณไม่ได้ระบุค่า LIMIT
คำค้นหาจะแสดงผล 1000 แถวตามค่าเริ่มต้น
นอกจากนี้คุณยังสามารถใช้พารามิเตอร์เสริม { OFFSET # }
เพื่อข้ามแถวบางส่วนก่อนเริ่มแสดงผลข้อมูลแถว วลีผลลัพธ์จะถูกจัดรูปแบบคล้ายกับ: LIMIT 15 { OFFSET 5 }
ตัวอย่างนี้ใช้ LIMIT
และ ORDER BY
เพื่อสร้างรายการสินค้าขายดี 10 อันดับแรกในช่วง 3 เดือนที่ผ่านมา
FROM sales
SHOW gross_sales as total_gross_sales
GROUP BY product_title
SINCE -3m
UNTIL today
ORDER BY total_gross_sales DESC
LIMIT 10
VISUALIZE และ TYPE
คำสำคัญ VISUALIZE
ช่วยให้คุณสามารถเขียนคำค้นหาของ ShopifyQL ที่แสดงข้อมูลในการแสดงภาพแบบกราฟิก การแสดงภาพที่รองรับประกอบด้วยค่าต่อไปนี้:
bar
stacked_bar
stacked_horizontal_bar
line
simple_bar
stacked_area
single_metric
donut
list
list_with_dimension_values
horizontal_bar
cohort
single_stacked_bar
funnel
grouped_bar
horizontal_grouped_bar
table
grid
คำสำคัญ TYPE
เป็นตัวเลือกเสริม และต้องระบุพร้อมกับการแสดงภาพประเภทเดียว หากไม่มี TYPE
ในคำค้นหา ShopifyQL จะตัดสินใจเลือกการแสดงภาพที่ดีที่สุดให้เหมาะสมกับคำค้นหาของคุณโดยอัตโนมัติ หากคำค้นหาของคุณไม่สามารถแสดงภาพเป็นข้อความได้ ShopifyQL จะแสดงข้อมูลตาราง
VISUALIZE
ยังยอมรับคำสำคัญ LIMIT
ที่เป็นตัวเลือกเสริมซึ่งพารามิเตอร์คือจํานวนที่จํากัดของจุดข้อมูลที่จะแสดงผล
ตัวอย่างเช่น คุณสามารถดูแนวโน้มยอดขายของคุณตามเดือนในช่วงปีที่ผ่านมาด้วยเส้นแนวโน้ม คำค้นหานี้แสดงผลแผนภูมิเวลาที่แสดงยอดขายรวมตามเดือนในปีที่ผ่านมา ยอดขายรวมจะถูกแสดงเป็นเส้นเดียว โดยมีแกน x เป็นเดือน และแกน y เป็นยอดขายรวม
FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line
AS
คำสำคัญ AS
เป็นคำสำคัญที่ไม่บังคับ ซึ่งจะช่วยให้คุณเปลี่ยนชื่อ (หรือตั้งนามแฝง) ให้กับคอลัมน์หรือ Expression
AS
ยอมรับเฉพาะพารามิเตอร์เดียว หากนามแฝงมีช่องว่างในชื่อ คุณต้องล้อมรอบนามแฝงด้วยอัญประกาศคู่ (")
FROM sales
SHOW total_sales AS "My Total Sales"
ตัวดำเนินการ ShopifyQL อื่นๆ
ShopifyQL ประกอบด้วยตัวดำเนินการเพิ่มเติมดังต่อไปนี้
- ตัวดำเนินการทางคณิตศาสตร์ เช่น
+
หรือ/
- การรวมโดยนัย
- การจับคู่สตริงและอาร์เรย์บางส่วน เช่น
STARTS WITH
และCONTAINS
- ความคิดเห็น
ตัวดำเนินการทางคณิตศาสตร์
ShopifyQL อนุญาตให้ดำเนินการทางคณิตศาสตร์กับตัวชี้วัดของคุณได้ โดยตัวดำเนินการทางคณิตศาตร์ที่ใช้งานได้มีดังต่อไปนี้
ตัวดำเนินการทางคณิตศาสตร์ | คำอธิบาย |
---|---|
+ | การบวกจำนวนสองจำนวน |
- | การลบจำนวนสองจำนวน |
* | การคูณจำนวนสองจำนวน |
/ | การหารจำนวนสองจำนวน |
ตัวอย่างเช่น คำค้นหานี้จะคํานวณมูลค่าคำสั่งซื้อของแต่ละภูมิภาคในปีที่ผ่านมา เมื่อใช้ตัวดำเนินการทางคณิตศาสตร์กับเมตริก คุณสามารถใช้คำสำคัญ AS
เพื่อกำหนดชื่อใหม่ให้กับเมตริกใหม่ได้ โปรดทราบว่าการใช้นิพจน์คณิตศาสตร์มีข้อจำกัด
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
การรวมโดยนัย
การ join ช่วยให้คุณสามารถดูเมตริกที่อยู่คนละโดเมนได้พร้อมกันแบบเคียงข้างกัน การ join ใน ShopifyQL จะเกิดขึ้นเองและเป็นไปอย่างเหมาะสม
ShopifyQL มีความสามารถในการรวมข้อมูลดังต่อไปนี้
- ShopifyQL อนุญาตให้ join ฟิลด์มิติเมื่อมีตาราง
FROM
เดียวในคำค้นหา - การ join ด้านซ้ายอัตโนมัติบนฟิลด์มิติ
- ShopifyQL อนุญาตให้ทำ multi-fact join ได้ (เมื่อมีตาราง
FROM
หลายตารางในคำค้นหา) - การ join แบบเต็มอัตโนมัติใน multi-fact join ซึ่งรองรับตารางหรือสคีมาไม่จำกัดจำนวน และจัดกลุ่มตามมิติ
- เมตริกใน multi-fact join สามารถใช้ math ได้
Shopify QL มีข้อจำกัดการ join ดังต่อไปนี้
- ฟิลด์ join จะต้องมีชื่อเดียวกันในทุกสคีมาที่ join
- ฟิลด์ join ต้องอยู่ใน
GROUP BY
- ฟิลด์ join ไม่สามารถใช้ math ได้
FROM
จำเป็นเพื่อให้ multi-fact join ได้ผลลัพธ์ที่ถูกต้อง- ใน multi-fact join ทุกรายการของ
GROUP BY
จะต้องอยู่ในทุกสคีมาและถือเป็นฟิลด์ที่ต้อง join
ตัวอย่างเช่น คำค้นหานี้ใช้ multi-fact join:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
การจับคู่สตริงและอาร์เรย์บางส่วน
คุณสามารถใช้ตัวดำเนินการต่อไปนี้สำหรับการจับคู่สตริงบางส่วนและอาร์เรย์:
ตัวดำเนินการ | คำอธิบาย |
---|---|
STARTS WITH | ส่งกลับแถวทั้งหมดที่มีคอลัมน์เริ่มต้นด้วยคำนำหน้า |
ENDS WITH | ส่งกลับแถวทั้งหมดหากมีคอลัมน์ที่ลงท้ายด้วยคำต่อท้าย |
CONTAINS | ส่งกลับแถวทั้งหมดที่มีคอลัมน์ที่ประกอบด้วยส่วนหนึ่งของสตริงหรือข้อมูลในอาร์เรย์ |
ตัวอย่างบางส่วนของการจับคู่สตริงบางส่วนโดยใช้ตัวดำเนินการ ได้แก่คำค้นหาต่อไปนี้
FROM sales
SHOW product_title
WHERE product_title STARTS WITH 'Summer'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title ENDS WITH 'kit'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title CONTAINS 'Beef'
GROUP BY product_title
สามารถใช้ตัวดำเนินการ CONTAINS
เพื่อจับคู่ข้อมูลภายในอาร์เรย์ รวมถึงจำนวนเต็ม สตริง และทศนิยม การจับคู่นี้ไม่คำนึงถึงตัวพิมพ์เล็กพิมพ์ใหญ่ ตัวอย่างบางส่วนของการจับคู่อาร์เรย์โดยใช้ CONTAINS
ได้แก่คำค้นหาต่อไปนี้
FROM sales
SHOW orders
WHERE products_bought_together_ids CONTAINS '101'
FROM customers
SHOW total_number_of_orders
WHERE customer_cities CONTAINS 'seattle'
FROM sales
SHOW orders
WHERE variants_bought_together_variant_prices CONTAINS '10.2'
ความคิดเห็น
คุณสามารถใช้ความคิดเห็นเพื่ออธิบายส่วนต่างๆ ของข้อความ ShopifyQL หรือป้องกันการเรียกใช้ข้อความ ShopifyQL ระบบจะละเว้นข้อความใดๆ ที่มีความคิดเห็นในขณะที่เรียกใช้
ความคิดเห็นบรรทัดเดียวจะเริ่มต้นด้วย --
และสิ้นสุดที่ท้ายบรรทัด
ความคิดเห็นแบบหลายบรรทัดจะเริ่มต้นด้วย /*
และลงท้ายด้วย */
FROM sales
SHOW average_order_value, gross_sales
-- the line below has been commented out and won't run
-- GROUP BY billing_region
WHERE billing_country = 'United States'
/*
this line and the two lines below it have been commented out and won't run
SINCE 2021-01-01
UNTIL 2021-12-31
*/