ShopifyQL sorgu düzenleyicisini kullanma
İşletmenizin veritabanını keşfetmek ve işletmenizi daha derinlemesine anlamanızı sağlayan verileri almak için yeni Shopify Analiz ile birlikte ShopifyQL kullanabilirsiniz.
ShopifyQL veya Shopify Sorgu Dili, Shopify'ın ticarete yönelik olarak oluşturulan yerleşik sorgu dilidir. Sorgu dilleri, veritabanlarından veri talep etmek ve almak için kullanılır. Mağazanızın verileri, tanımlanmış sütunlar ve satırlar halinde yapılandırılmış veritabanı tablolarında depolanır. Sütunlar, içerdikleri bilgi türünü tanımlar (ör. satışlar), satırlar ise veri türünün gerçek değerini (ör. satışlardaki 2.450 USD) belirtir
Verilerinizin anlamlı bir biçimde alınabilmesi için veritabanına bir sorgu gönderilmesi gerekir. Sorgu, anahtar sözcüklerden ve bunlara karşılık gelen parametrelerden oluşan, yanıt olarak belirli verileri isteyen bir sorudur. Birkaç anahtar sözcüğün belirli parametrelerle birleşimi sorgunuzu oluşturur. Oluşturduktan sonra sorgunuzu çalıştırabilir ve rapor alabilirsiniz.
Bu sayfada
Terimler sözlüğü
Dönem | Tanım |
---|---|
Boyut | Verileri bölümlere ayırarak daha net bir şekilde sıralanabilmesi ve sunulabilmesini sağlayan bir nitelik. Boyutla ilgili yaygın örnekler arasında zaman, ürünler ve yerler yer alır. Boyutlar, ShopifyQL'de parametre olarak kullanılır. |
Anahtar sözcük | Sorgunuzu yönlendirmek için komut işlevinde davranan ShopifyQL sözdizimi. |
Metrik | Verilerin nicel ölçümü. Metriklerin yaygın örnekleri arasında toplam satışlar, sipariş sayısı ve brüt kar yer alır. |
Parametre | Sorgunuza dahil edilecek veritabanı öğelerini veya ayrıntılarını tanımlayan ShopifyQL sözdizimi. |
Operatör | Bir sorgunun parçası olarak kullanılan, ayrılmış bir sözcük veya karakter. Örneğin: STARTS WITH , >= veya last_week . |
ShopifyQL sözdizimi
ShopifyQL'i kullanarak geçerli bir rapor sorgusu oluşturmak için aşağıdaki gereklilikleri karşılamanız gerekir:
- Sorgunun tamamını tek bir satıra veya ayrı satırlara yerleştirebilirsiniz.
- Uygun parametrelerle birlikte
FROM
veSHOW
anahtar sözcüklerini eklemeniz gerekir. Diğer tüm anahtar sözcükler ve parametreler isteğe bağlıdır. - Bir sorgudaki tüm anahtar kelimeler aşağıdaki sıraya göre dahil edilmelidir:
1.
FROM
2.SHOW
3.WHERE
4.GROUP BY
5.TIMESERIES
6.WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
7.HAVING
8.SINCE
veUNTIL
veyaDURING
9.COMPARE TO
ve isteğe bağlıUNTIL
10.ORDER BY
11.LIMIT
12.VISUALIZE
veTYPE
Bu, doğru söz diziminin kullanıldığı ve sorgu olarak yazılmış bir ShopifyQL örneğidir. Anahtar kelimeler kalın harflerle yazılmıştır, bunlara karşılık gelen parametreler genel yer tutucular kullanılarak dahil edilmiştir ve isteğe bağlı parametreler parantez içindedir:
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 anahtar sözcükleri
ShopifyQL sorguları, temel (yüksek düzeyde veri analizleri için ) ve kapsamlıyı (ayrıntılı analizler için) içeren bir yelpazeye yayılır. Her anahtar kelimenin, sorgunuzu oluşturan belirli bir işlevi vardır.
Anahtar sözcük | Açıklama |
---|---|
FROM | Hangi veri kümesi tablosundan veri seçileceğini belirtir. |
SHOW | Veri kümesi tablosundan çıkarmak istediğiniz sütunları seçer. |
WHERE | Satırların seçilebilmesi için karşılaması gereken koşul veya koşulları tanımlar. |
GROUP BY | Ayıklanan verileri boyut veya zaman boyutlarına göre gruplandırır. |
TIMESERIES | Bir sorgudaki zaman boyutlarına ve geri doldurma tarihlerine göre gruplandırmayı ayırır. |
WITH | Belirli ShopifyQL anahtar sözcüklerinin davranışını değiştirir. |
HAVING | Sorgunun sonuçlarını gruplandıktan sonra filtreler. |
SINCE | Geçmişteki belirli bir zamandan beri olan verileri gösterir. Genellikle UNTIL ile birlikte kullanılır. |
UNTIL | Geçmişteki belirli bir zamana kadar olan verileri gösterir. Genellikle SINCE veya COMPARE TO ile birlikte kullanılır. |
DURING | Geçmişteki belirli bir zamandaki verileri gösterir. |
COMPARE TO | Geçmişte belirli bir zamanla karşılaştırarak verileri gösterir. |
ORDER BY | Verilerin hangi sütuna göre sıralanacağını belirtir. |
LIMIT | Gösterilen veri satırlarının sayısını sınırlar. |
VISUALIZE | Verilerinizi bir çizgi veya çubuk grafiğiyle görüntüler. TYPE anahtar sözcüğünü kullanarak hangi görselleştirme yöntemini istediğinizi seçebilirsiniz. |
AS | Bir sütunu seçtiğiniz bir adla yeniden adlandıran isteğe bağlı anahtar kelime. |
En basit ShopifyQL sorgusunu oluşturmak için yalnızca iki anahtar kelime gerekir: sırasıyla FROM
ve SHOW
. Bir veya daha fazla tablo adı parametresinden önce gelen FROM
, sorgulamak istediğiniz tabloları belirtir. Sütun adı parametrelerinden önce gelen SHOW
, seçmek istediğiniz sütunları belirtir.
SHOW
metriklerin ve boyutların raporda döndürüleceği sırayı belirtmek için kullanılabilir.
Örneğin, şu sorguyu yazarak toplam satışları döndürebilirsiniz:
FROM sales
SHOW total_sales
WHERE
WHERE
anahtar sözcüğü, ShopifyQL sorgusunun tümüne boyutsal filtre uygulamanıza olanak tanır. Filtre karşılaştırma operatörleri (örneğin, şu değerden yüksek: >
), mantıksal operatörler (örneğin, AND
veya NOT
) ve kısmi dize ile dizi eşleştirme (örneğin, STARTS WITH
ve CONTAINS
) kullanılarak değiştirilebilir.
WHERE
Koşullar aşağıdaki gereklilikleri karşılamalıdır:
- Değerler çift tırnak işareti (") değil, tek tırnak işareti (') arasında olmalıdır.
- Koşullar herhangi bir aritmetik öğe içeremez.
- Koşullar metriğe değil yalnızca bir boyuta referans verebilir.
Örneğin, toplam satışları döndürmek ancak fatura ülkesine göre filtrelemek istiyorsanız sorgunuz şu şekilde olmalıdır:
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'
GROUP BY product_title, product_type, product_vendor
Yukarıdaki örnekte gördüğünüz gibi WHERE
parametresini kullanarak sonuçları filtreleyebilirsiniz. Parametrenin SHOW
anahtar sözcüğüne dahil edilmiş olması gerekmez. Bu örnekte, billing_country
sonuç kümesine dahil edilmemiş olsa bile toplam satışlar yalnızca Kanada'dan verilen siparişleri içerecek şekilde filtrelenmiştir.
Karşılaştırma operatörleri
WHERE
anahtar sözcüğü, verileri filtrelemek için karşılaştırma operatörlerini kullanır. Yukarıdaki örnekte =
, sorgunun belirli bir değere göre filtrelendiğini belirtmek için kullanılmıştır. Ancak kullanabileceğiniz başka operatörler de vardır:
Karşılaştırma operatörü | Açıklama |
---|---|
= | şuna eşit: |
!= | şuna eşit değil: |
< | şu değerden düşük: |
> | şu değerden yüksek: |
<= | şu değerden düşük veya ona eşit: |
>= | şu değerden yüksek veya ona eşit: |
Verilerinizi daha fazla filtrelemek için sorgunuza mantıksal operatörler ekleyebilirsiniz. ShopifyQL mantıksal operatörleri şunlardır:
Mantıksal operatör | Açıklama |
---|---|
AND |
AND ile ayrılan koşulların karşılandığı tüm satırları dahil etmek için filtreleyin. |
OR |
OR ile ayrılan koşullardan herhangi birinin karşılandığı tüm satırları dahil etmek için filtreleyin. |
NOT | Yalnızca koşulların karşılanmadığı satırları (ör. belirtilen değeri içermeyen satırlar) gösterecek şekilde filtreleyin. |
Mantıksal operatörler ekleyerek WHERE
anahtar sözcüğüyle birden fazla filtre kullanabilirsiniz.
Fatura adresleri yalnızca Kanada'da bulunan, indirim uygulanmış ve kurutulmuş şeftali içeren tüm siparişlerin net satışlarının aylık gruplandırılması için örnek veri kümesi sorgusuna eklenecek sorgu şu şekildedir:
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
Bir metriği boyuta göre segmentlere ayırmak (ör. bölgeye göre satışları gruplandırma) istiyorsanız GROUP BY
anahtar sözcüğünü kullanın. GROUP BY
anahtar sözcüğü herhangi bir boyut parametresiyle eşleştirilebilir.
Örneğin, fatura ülkesine ve bölgesine göre toplam satışları gruplandıran bir sorgu şu şekilde yazılır:
FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region
Aya göre toplam satışları görüntülemek için zaman boyutunu kullanan bir sorgu örneği aşağıda verilmiştir:
FROM sales
SHOW total_sales
GROUP BY month
Yukarıdaki sorgu, satış yapmadığınız hiçbir ayı döndürmez. Tam ve kesintisiz bir zaman dilimini döndüren sorgu istiyorsanız TIMESERIES
anahtar sözcüğünü kullanın.
FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today
Zaman Boyutları
Bunlar, verilerinizi gruplandırmak için kullanabileceğiniz zaman boyutlarıdır:
Operatör | Açıklama |
---|---|
second | Saatin saniyesine göre gruplandırma. |
minute | Saatin dakikasına göre gruplandırma. |
hour | Takvim günü saatlere göre gruplama. |
day | Takvim gününe göre gruplandırma. |
week | Takvim haftasına göre gruplandırma. |
month | Takvim ayına göre gruplandırma. |
quarter | Takvim çeyreğine göre gruplandırma. |
year | Takvim yılına göre gruplandırma. |
hour_of_day | 24 saate göre sıfır tabanlı gruplama (0, 1, ..., 23). |
day_of_week | Haftanın gününe göre sıfır tabanlı gruplama (0, 1, ... , 6). |
week_of_year | Yılın haftasına (1, 2, ..., 52) göre gruplandırma. |
month_of_year | Yılın ayına göre gruplandırma (1, 2, ..., 12). |
Gruplandırmayı zaman boyutlarına göre ayırmak, zaman içindeki metrikleri görüntülemek ve bir sorgudaki tarihleri geri doldurarak tarihin olmadığı bir zaman serisi grafiğine dönüştürmek istediğinizde TIMESERIES
anahtar sözcüğünü kullanabilirsiniz.
Bu örnekte, son 15 güne ait eksik toplam satışlar verileri geri doldurulur:
FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d
TIMESERIES ve sütunların sırası
TIMESERIES
anahtar sözcüğünün verilip verilmediğine ve GROUP BY
veya SHOW
değerlerinin birinde bulunup bulunmadığına bağlı olarak sütunların sırası değişebilir.
TIMESERIES | SHOW | GROUP BY | Sonuç |
---|---|---|---|
Verildi | Mevcut değil | Mevcut değil |
TIMESERIES ilk boyuttur. |
Verildi | Mevcut değil | Bulunuyor | Zaman boyutlarının konumu, GROUP BY içindeki konumuna göre belirlenir. |
Verildi | Bulunuyor | Bulunuyor | Zaman boyutlarının konumu, SHOW içindeki konumuna göre belirlenir. |
Verilmedi | Mevcut değil | Bulunuyor | Zaman boyutlarının konumu, GROUP BY içindeki konumuna göre belirlenir. Veriler geri doldurulmadı. |
Verilmedi | Bulunuyor | Bulunuyor | Zaman boyutlarının konumu, SHOW içindeki konumuna göre belirlenir. Veriler geri doldurulmadı. |
Verilmedi | Bulunuyor | Mevcut değil |
SHOW yalnızca GROUP BY içindeki boyutlara referans verebildiğinden söz dizimi hatasına neden olur. |
WHERE
anahtar sözcüğüne benzer olarak HAVING
anahtar sözcüğünü kullanarak gruplanan sorgu sonuçlarını filtreleyebilirsiniz. Filtrenin tek bir koşulu olabilir ancak bu koşul hem karşılaştırma operatörleri (ör. şu değerden yüksek: >
) hem de mantıksal operatörler (örneğin, AND
veya NOT
) tarafından değiştirilebilir. WHERE
anahtar sözcüğünün aksine HAVING
, diğer adlara, toplama işlevlerine ve gruplandırma sütunlarına referans verebilir.
HAVING
sorgunuzda bir GROUP BY
veya TIMESERIES
olmasını gerektirir. Bunun nedeni, HAVING
anahtar sözcüğünün GROUP BY
veya TIMESERIES
tarafından gruplanan sorgu sonuçlarını filtrelemesidir.
Bu örnekte, toplam satışı 1.000'den büyük ve 5.000'den az olan her ürün için toplam satışlar filtrelenir:
FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000
WITH
WITH
anahtar sözcüğü, bazı diğer ShopifyQL anahtar sözcüklerinin davranışını değiştirir. Kullanılabilen 3 değişiklik vardır:
TOTALS
: Herhangi bir boyuta göre dağıtılmadan önce metriklerin üst düzey bir özetini sağlar.GROUP_TOTALS
: Toplama yoluyla bir grup oluşturulduğunda tüm alt gruplar için bir toplam sağlar.PERCENT_CHANGE
:COMPARE TO
içindeki tüm karşılaştırma sütunlarına değişim yüzdesi metriği ekler. Bu değiştirici mevcut olduğunda, her karşılaştırma metriği sütunu için değişim yüzdesi içeren yeni bir sütun eklenir.
TOTALS
TOTALS
değiştiricisi, metriklerin başka bir boyuta göre dağılmalarından önce üst düzey bir özetlerini sağlar. WITH TOTALS
öğesini kullandığınızda sorgu, sonuçlar kümesinde toplamları ek sütunlar olarak döndürür. Metrik adı ve "toplamlar" sütun adının bir parçası olarak gösterilir. Her satır geçerli tüm toplamları içerir.
Örneğin, bu sorguda toplam satışların toplamı gösterilir:
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
Bu sorgu, aşağıdakine benzer bir rapor döndürebilir:
Gün | Brüt satışlar | Net satışlar | Toplam satış |
---|---|---|---|
Özet | 6 | 15 | 24 |
01.01.2024 | 1 | 4 | 7 |
02.01.2024 | 2 | 5 | 8 |
01.03.2024 | 3 | 6 | 9 |
GROUP_TOTALS
değiştiricisi, toplama yoluyla bir grup olduğunda tüm alt gruplar için toplam sağlar. WITH GROUP_TOTALS
öğesini kullandığınızda sorgu, sonuçlar kümesinde toplamları ek sütunlar olarak döndürür. Metrik adı, toplanan boyutlar ve "toplamlar" sütun adının bir parçası olarak gösterilir. Her satır geçerli tüm toplamları içerir.
Örneğin, bu sorguda faturanın kesildiği ülkeye göre toplam satışların toplamı gösterilir:
FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS
Bu sorgu, aşağıdakine benzer bir rapor döndürebilir:
Ülke | Müşteri kimliği | Toplam satış |
---|---|---|
Özet (ABD + Kanada) | - | 1 |
ABD Grup toplamları | - | 0 |
ABD | 1 | 1 |
ABD | null | -1 |
Kanada Grup toplamları | - | 1 |
Kanada | 1 | 1 |
PERCENT_CHANGE
değiştiricisi, COMPARE TO
kullanıldığında tüm karşılaştırma sütunlarına değişim yüzdesi metriği ekler. WITH PERCENT_CHANGE
değiştiricisini kullandığınızda sorgu, sonuçlar kümesinde her bir karşılaştırma metriği için değişim yüzdesini döndürür. Metrik adı ve "değişim yüzdesi" sütun adının parçası olarak gösterilir.
Değişim yüzdesinin hesaplanmasında kullanılan formül şu şekildedir: (base_column - comparison_column) * 100 / abs(comparison_column)
Örneğin, bu sorguda bir önceki ayın günlük net satışlarını bir önceki yılın aynı ayı ile karşılaştırmak için SINCE
ve COMPARE TO
kullanılmış ve değişim yüzdesi sütununa yer verilmiştir:
FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Ortaya çıkan rapordaki sütunlar, gün, net satışlar, karşılaştırma günü, karşılaştırma net satışları ve net satışların değişim yüzdesini içerir.
SINCE ve UNTIL
Sorgunuzu bir tarihe veya belirli bir zaman dilimine göre filtrelemek istiyorsanız SINCE
ve UNTIL
anahtar sözcüklerini ve bunlarla ilişkili parametreleri kullanabilirsiniz. Yalnızca zaman dilimlerini filtrelediklerinden bu anahtar sözcükler benzersizdir. SINCE
kullanıp UNTIL
değeri belirlemediyseniz zaman aralığınızın bitiş tarihi varsayılan olarak today
değeridir.
Örneğin, son tarihi dün olmak üzere son 12 ayda Kanada'da gerçekleşen net satışları bulmaya yönelik bir sorgu şu şekildedir:
FROM sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
Tarih aralığı operatörleri
Belirli tarihlere veya tarih aralıklarına göre filtre oluşturabilirsiniz. ShopifyQL'deki aralık operatörleri şunlardır:
Tarih aralığı operatörü | Açıklama |
---|---|
-{#}s | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen saniye sayısı. |
-{#}min | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen dakika sayısı. |
-{#}h | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen saat sayısı. |
-{#}d | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen gün sayısı. |
-{#}w | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen hafta sayısı. |
-{#}m | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen ay sayısı. |
-{#}q | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen çeyrek sayısı. |
-{#}y | Sorgunun çalıştırıldığı tarih ve saatten itibaren geçen yıl sayısı. |
yyyy-MM-dd | Belirli bir tarih. |
yyyy-MM-ddThh:mm:ss | Belirli bir tarih ve saat. |
Aşağıdaki işlevleri tüm tarih aralığı operatörleriyle (belirli tarihler hariç) birlikte SINCE
ve UNTIL
durumlarında kullanabilirsiniz. "startOf...
" işlevi, SINCE
ile birlikte kullanıldığında ilişkili zaman biriminin başlangıcını (dakika, saat, gün, hafta, ay, çeyrek ve yıl) kısaltır. "endOf...
" işlevi ise UNTIL
birlikte kullanıldığında ilişkili zaman biriminin bitişini kısaltır.
Geçerli bir sonuç döndürmek için tarih işlev birimleri ve operatör birimleri eşleşmelidir. Örneğin, startOfMonth(-1m)
doğrudur ancakstartOfMonth(-1d)
doğru değildir.
Tarih işlevi | Açıklama |
---|---|
now | Sorgunun çalıştırıldığı tarih ve saat. |
startOfMinute(-{#}min) | Tarih aralığı operatörünü hedef dakikanın başlangıcına kadar kısaltır. |
endOfMinute(-{#}min) | Tarih aralığı operatörünü hedef dakikanın sonuna kadar kısaltır. |
startOfHour(-{#}h) | Tarih aralığı operatörünü hedef saatin başlangıcına kadar kısaltır. |
endOfHour(-{#}h) | Tarih aralığı operatörünü hedef saatin sonuna kadar kısaltır. |
startOfDay(-{#}d) | Tarih aralığı operatörünü hedef günün başlangıcına kadar kısaltır. |
endOfDay(-{#}d) | Tarih aralığı operatörünü hedef günün sonuna kadar kısaltır. | startOfWeek(-{#}w) | Tarih aralığı operatörünü hedef haftanın başlangıcına kadar kısaltır. |
Örneğin, bugün 8 Kasım 2022 ise 1 Ocak 2020 ile 31 Ekim 2022 arasındaki brüt satışları döndürmek için aşağıdaki sorguyu kullanabilirsiniz:
FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)
DURING
DURING
anahtar sözcüğü, tarih aralıkları için tarihe göre filtrelemeyi basitleştirir ve SINCE
ile UNTIL
kullanımın yerine geçer. Takvim yılı veya belirli bir ay gibi bilinen bir zaman aralığı ya da Black Friday Cyber Monday gibi her yıl tarihleri değişen tarih aralıklarını kullanarak sorgu sonuçlarını filtrelemek için DURING
anahtar sözcüğünü kullanabilirsiniz. Örneğin:
FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021
Adlandırılmış tarih aralığı operatörleri
DURING
aşağıdaki adlandırılmış tarih aralığı operatörlerinden herhangi birini kabul eder:
Adlandırılmış tarih aralığı operatörü | Açıklama |
---|---|
today | Sorgunun çalıştırıldığı tarih. |
yesterday | Sorgunun çalıştırıldığı tarihten önceki 24 saatlik zaman aralığı. |
this_week | İçinde bulunulan takvim haftası. |
this_month | İçinde bulunulan takvim ayı. |
this_quarter | İçinde bulunulan takvim çeyreği. |
this_year | İçinde bulunulan takvim yılı. |
last_week | Önceki takvim haftası. |
last_month | Önceki takvim ayı. |
last_quarter | Önceki takvim çeyreği. |
last_year | Önceki takvim yılı. |
bfcmYYYY | Belirtilen yıl için Black Friday Cyber Monday aralığı. Örneğin, bfcm2022 25-28 Kasım 2022 sonucunu döndürür. |
COMPARE TO
COMPARE TO
anahtar sözcüğü, SINCE
ve UNTIL
veya DURING
ve COMPARE TO
içindeki tarih aralıklarının verilerini karşılaştırmanıza olanak tanır.
COMPARE TO
anahtar sözcüğünü aşağıdaki parametre türleriyle birlikte kullanabilirsiniz:
2023-01-01
gibi kesin tarihler: Belirtilen döneme ait metrikleri ve kesin tarihte aynı döneme ait karşılaştırma metriklerini içerir.last_week
gibi adlandırılmış tarihler: Belirtilen döneme ait metrikleri ve adlandırılmış tarihte aynı döneme ait karşılaştırma metriklerini içerir. -COMPARE TO
tarafından kullanılan operatör,DURING
tarafından kullanılan operatörler aynı uzunlukta olmak zorunda değildir.UNTIL
değeri sağlanmadıysa zaman aralığını,DURING
öğesinde belirtilen değerle aynı olacak şekilde kabul ederek hesaplama yapar. Örneğin,DURING this_week COMPARE TO last_month
bu haftanın verilerini, geçen ayın başında başlayan bir haftalık dönemle karşılaştırır.-3q
gibi tarih aralıkları: Belirtilen döneme ait metrikleri ve göreli tarihte aynı döneme ait karşılaştırma metriklerini içerir.-1y, -2y
gibi birden fazla tarih karşılaştırması: Belirli bir tarih aralığındaki verilerinizi birden fazla tarih aralığıyla karşılaştırın. Birkaç dönemde gerçekleşen değişiklikleri izlemek istediğinizde bu yararlı olabilir.Sorguda
COMPARE TO
ile birlikte bir tarih boyutu kullanmıyorsanız sorgu içinGROUP BY
yerineTIMESERIES
öğesini kullanmanız gerekir.
Aşağıdaki örnekte önceki ayın net satışları önceki yılın aynı ayıyla karşılaştırılır:
FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Göreli tarih aralığı operatörleri
Göreli operatörler, temel tarih aralığıyla aynı süreyi, belirtilen dönem kadar geriye giderek döndürür. Adlandırılmış tarih aralığı operatörlerine ek olarak COMPARE TO
aşağıdaki göreli operatörleri kabul eder:
Göreli tarih aralığı operatörü | Açıklama |
---|---|
previous_period | Temel tarih aralığından bir dönem önce. |
previous_year | Temel tarih aralığından bir yıl önce. |
previous_quarter | Temel tarih aralığından bir çeyrek önce. |
previous_month | Temel tarih aralığından bir ay önce. |
previous_week | Temel tarih aralığından bir hafta önce. |
previous_day | Temel tarih aralığından bir gün önce. |
previous_hour | Temel tarih aralığından bir saat önce. |
previous_minute | Temel tarih aralığından bir dakika önce. |
previous_second | Temel tarih aralığından bir saniye önce. |
ORDER BY
anahtar sözcüğünü ve parametrelerini kullanarak sorgunuz tarafından döndürülen verileri nasıl sıralamak istediğinizi belirtebilirsiniz. Artan düzen için ASC
ve azalan düzen için DESC
parametrelerini kullanabilirsiniz.
Sorgunuza dahil ettiğiniz herhangi bir metriği veya boyutu (birden çok alan dahil) ORDER BY
anahtar sözcüğünde belirtebilirsiniz.
Örneğin, bu sorgu tüm ürün ve varyasyonların geçen yılki net satışlarını döndürür. Sonuçlar önce ürün başlığına göre alfabetik sırayla, ardından ürün türüne göre ters alfabetik düzende sıralanır:
FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC
Metriklerinizi veya boyutlarınızı hangi sırayla yazdığınız önemlidir. ORDER BY
için birden fazla değer belirtirseniz sıralama, her metrik ya da boyuta belirtilen sırayla uygulanır.
TIMESERIES ve sütunların sırası
Sorgunun TIMESERIES
ve ORDER BY
öğelerini içerip içermediğine göre sütunların sırası değişebilir.
TIMESERIES | ORDER BY | Sonuç |
---|---|---|
Bulunuyor | Mevcut değil | Sonuçlar TIMESERIES boyutuna göre sıralanır. |
Bulunuyor | Bulunuyor | Sonuçlar TIMESERIES zaman boyutuna ve ardından ORDER BY boyutuna göre sıralanır. |
Mevcut değil | Bulunuyor | Sonuçlar ORDER BY boyutuna göre sıralanır. |
Mevcut değil | Mevcut değil | Sonuçlar ilk SHOW sütununa göre sıralanır. |
LIMIT
anahtar sözcüğü, sorgunun döndüreceği maksimum satır sayısını belirtmenize olanak tanır. Bu, her bir sütundaki verilerin nasıl görüntülendiğini anlamak istediğinizde veya sorguların değer döndürmesinin daha uzun sürebileceği daha büyük raporlar için kullanışlıdır. LIMIT
anahtar sözcüğünü ORDER BY
ile birleştirerek en iyi ve en kötü listeleri oluşturabilirsiniz.
Bir LIMIT
değeri belirtmezseniz sorgu varsayılan olarak 1.000 şeklinde ayarlanır.
Satır verilerini döndürmeye başlamadan önce belirli bir satır sayısını atlamak için isteğe bağlı { OFFSET # }
parametresini kullanabilirsiniz. Bunun sonucunda ortaya çıkan ifade şu şekilde biçimlendirilir: LIMIT 15 { OFFSET 5 }
.
Son 3 ay içinde en çok satılan ilk 10 ürün listesini oluşturmak için LIMIT
ve ORDER BY
anahtar sözcüklerinin kullanıldığı örnek şu şekildedir:
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 ve TYPE
VISUALIZE
anahtar sözcüğü, verileri bir grafikte görselleştirmenizi sağlayan ShopifyQL sorgusu yazmanıza olanak tanır. Desteklenen görselleştirmeler aşağıdaki değerleri içerir:
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
anahtar sözcüğü isteğe bağlıdır ve tek bir tür görselleştirmeyle birlikte kullanılmalıdır. TYPE
sorgunuzda yer almıyorsa ShopifyQL, sorgunuza en uygun görselleştirmeyi otomatik olarak belirler. Sorgunuz yazılı olarak görselleştirilemiyorsa ShopifyQL verileri tablo biçiminde döndürür.
VISUALIZE
ayrıca, parametrenin oluşturulacak sınırlı sayıda veri noktası olduğu isteğe bağlı LIMIT
anahtar sözcüğünü de kabul eder.
Örneğin, bir trend çizgisi ile geçen yıla ait satış trendinizi ay bazında görselleştirebilirsiniz. Aşağıdaki sorgu, geçen yıl boyunca gerçekleşen brüt satışları aya göre gösteren zaman serisi grafiği döndürür. Brüt satışlar, x ekseni ay olarak ve y ekseni brüt satış olarak etiketlenerek tek bir satırla gösterilir:
FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line
AS
AS
anahtar sözcüğü, bir sütunu veya ifadeyi yeniden adlandırmanıza (veya bunun için bir takma ad sağlamanıza) olanak tanıyan isteğe bağlı bir anahtar sözcüktür.
AS
yalnızca tek bir parametre kabul eder. Diğer adda boşluk varsa bu diğer adı çift tırnak (") içine almanız gerekir.
FROM sales
SHOW total_sales AS "My Total Sales"
Diğer ShopifyQL operatörleri
ShopifyQL aşağıdaki ek operatörleri içerir:
- Matematiksel operatörler, örneğin:
+
veya/
- Örtük birleştirmeler
- Kısmi dize ile dizi eşleştirme, örneğin:
STARTS WITH
veCONTAINS
- Yorumlar
Matematiksel operatörler
ShopifyQL, verilerinizdeki metriklerle aritmetik işlemler yapılmasına izin verir. Mevcut matematiksel operatörler aşağıda verilmiştir:
Matematiksel Operatör | Açıklama |
---|---|
+ | İki sayının eklenmesi. |
- | İki sayının çıkarılması. |
* | İki sayının çarpılması. |
/ | İki sayının bölünmesi. |
Örneğin bu sorgu, son bir yıldaki her bölge için sipariş değerini hesaplar. Matematiksel operatörleri metriklerle kullanırken, yeni metriğe yeni bir ad atamak için AS
anahtar sözcüğünü kullanabilirsiniz. Lütfen matematiksel ifadelerin kullanımında sınırlamalar olduğunu unutmayın.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Örtük birleştirmeler
Birleştirmeler, farklı alan adlarından gelen metrikleri bir arada, yan yana göstermenizi sağlar. ShopifyQL'de birleştirmeler örtük ve akıllı bir şekilde yapılır.
ShopifyQL şu birleştirme özelliklerine sahiptir:
- ShopifyQL, sorguda tek bir
FROM
tablosu olduğunda boyut alanı birleştirmelerine olanak tanır. - Boyut alanlarında otomatik sol birleştirme.
- ShopifyQL çoklu olgu birleştirmelerine olanak tanır (sorgularda birden fazla
FROM
tablosu olduğunda). - Çok sayıda tabloyu veya şemayı destekleyen ve boyutlara göre gruplandırılan çoklu olgu birleştirmelerinde otomatik tam birleştirme.
- Çoklu olgu birleştirmelerindeki metrikler matematik kullanabilir.
ShopifyQL'de aşağıdaki birleştirme kısıtlamaları vardır:
- Birleştirme alanı, birleştirilen tüm şemalarda aynı ada sahip olmalıdır.
- Birleştirme alanı
GROUP BY
içinde olmalıdır. - Birleştirme alanı matematik kullanamaz.
FROM
çoklu olgu birleştirmelerinin çalışması için gereklidir.- Bir çoklu olgu birleştirmesinde, her
GROUP BY
tüm şemalarda bulunmalıdır ve birleştirilecek bir alan olarak kabul edilir.
Örneğin, bu sorgu bir çoklu olgu birleştirmesi kullanır:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Kısmi dize ve dizi eşleştirme
Kısmi dize ve dizi eşleştirmesi için aşağıdaki operatörleri kullanabilirsiniz:
Operatör | Açıklama |
---|---|
STARTS WITH | Sütunun bir ön ekle başladığı tüm satırları döndürür. |
ENDS WITH | Sütunun bir son ekle bittiği tüm satırları döndürür. |
CONTAINS | Sütunun bir dizenin bir bölümünü veya bir dizideki bir öğeyi içerdiği tüm satırları döndürür. |
Operatörlerin kullanıldığı bazı kısmi dize eşleştirmesi örnekleri aşağıdaki sorguları içerir:
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
operatörü; tam sayılar, dizeler ve ondalık sayılar dahil olmak üzere dizilerdeki öğeleri eşleştirmek için kullanılabilir. Bu eşleştirme büyük/küçük harfe duyarlı değildir. CONTAINS
kullanılan bazı dizi eşleştirme örnekleri aşağıdaki sorguları içerir:
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'
Yorumlar
Yorumları, ShopifyQL ifadelerinin bölümlerini açıklamak veya bir ShopifyQL ifadesinin yürütülmesini önlemek için kullanabilirsiniz. Bir yorumun içindeki metinler, kod yürütülürken dikkate alınmaz.
Tek satırlı yorumlar, --
ile başlar ve satırın sonunda biter.
Çok satırlı yorumlar /*
ile başlar ve */
ile biter.
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
*/