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.

Terimler sözlüğü

Boyut, anahtar sözcük ve operatör gibi ShopifyQL terimlerinin tanımları.
DönemTanım
BoyutVerileri 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ükSorgunuzu yönlendirmek için komut işlevinde davranan ShopifyQL sözdizimi.
MetrikVerilerin nicel ölçümü. Metriklerin yaygın örnekleri arasında toplam satışlar, sipariş sayısı ve brüt kar yer alır.
ParametreSorgunuza dahil edilecek veritabanı öğelerini veya ayrıntılarını tanımlayan ShopifyQL sözdizimi.
OperatörBir 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 ve SHOW 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. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    7. HAVING
    8. SINCE ve UNTIL veya DURING
    9. COMPARE TO ve isteğe bağlı UNTIL
    10. ORDER BY
    11. LIMIT
    12. VISUALIZE ve TYPE

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.

ShopifyQL anahtar sözcüklerinin ve açıklamalarının listesi.
Anahtar sözcükAçıklama
FROMHangi veri kümesi tablosundan veri seçileceğini belirtir.
SHOWVeri kümesi tablosundan çıkarmak istediğiniz sütunları seçer.
WHERESatırların seçilebilmesi için karşılaması gereken koşul veya koşulları tanımlar.
GROUP BYAyıklanan verileri boyut veya zaman boyutlarına göre gruplandırır.
WITHBelirli ShopifyQL anahtar sözcüklerinin davranışını değiştirir.
TIMESERIESBir sorgudaki zaman boyutlarına ve geri doldurma tarihlerine göre gruplandırmayı ayırır.
HAVINGSorgunun sonuçlarını gruplandıktan sonra filtreler.
SINCEGeçmişteki belirli bir zamandan beri olan verileri gösterir. Genellikle UNTIL ile birlikte kullanılır.
UNTILGeçmişteki belirli bir zamana kadar olan verileri gösterir. Genellikle SINCE veya COMPARE TO ile birlikte kullanılır.
DURINGGeçmişteki belirli bir zamandaki verileri gösterir.
COMPARE TOGeçmişte belirli bir zamanla karşılaştırarak verileri gösterir.
ORDER BYVerilerin hangi sütuna göre sıralanacağını belirtir.
LIMITGösterilen veri satırlarının sayısını sınırlar.
VISUALIZEVerilerinizi 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.
ASBir sütunu seçtiğiniz bir adla yeniden adlandıran isteğe bağlı anahtar kelime.

FROM ve SHOW

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'

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:

Şu değerden yüksek veya bu değere eşit gibi ShopifyQL karşılaştırma operatörlerinin listesi.
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:

Mantıksal operatörler

Verilerinizi daha fazla filtrelemek için sorgunuza mantıksal operatörler ekleyebilirsiniz. ShopifyQL mantıksal operatörleri şunlardır:

AND, OR ve NOT gibi ShopifyQL mantıksal operatörlerinin listesi.
Mantıksal operatörAçı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.
NOTYalnı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 discounts > 0

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:

Saniye, dakika veya haftanın günü gibi ShopifyQL zaman boyutlarının listesi.
OperatörAçıklama
secondSaatin saniyesine göre gruplandırma.
minuteSaatin dakikasına göre gruplandırma.
hourTakvim günü saatlere göre gruplama.
dayTakvim gününe göre gruplandırma.
weekTakvim haftasına göre gruplandırma.
monthTakvim ayına göre gruplandırma.
quarterTakvim çeyreğine göre gruplandırma.
yearTakvim yılına göre gruplandırma.
hour_of_day24 saate göre gruplandırma (1, 2, ..., 24).
day_of_week"day of week" (haftanın günü) bilgisine (P, S, Ç, ..., P) göre gruplandırma.
week_of_yearYılın haftasına (1, 2, ..., 52) göre gruplandırma.
month_of_yearYılın ayına göre gruplandırma (1, 2, ..., 12).

TIMESERIES

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.

ShopifyQL kullanılıp GROUP BY veya SHOW mevcut olduğunda TIMESERIES örneği ve sütunların sırası.
TIMESERIESSHOWGROUP BYSonuç
VerildiMevcut değilMevcut değil TIMESERIES ilk boyuttur.
VerildiMevcut değilBulunuyorZaman boyutlarının konumu, GROUP BY içindeki konumuna göre belirlenir.
VerildiBulunuyorBulunuyorZaman boyutlarının konumu, SHOW içindeki konumuna göre belirlenir.
VerilmediMevcut değilBulunuyorZaman boyutlarının konumu, GROUP BY içindeki konumuna göre belirlenir. Veriler geri doldurulmadı.
VerilmediBulunuyorBulunuyorZaman boyutlarının konumu, SHOW içindeki konumuna göre belirlenir. Veriler geri doldurulmadı.
VerilmediBulunuyorMevcut değil SHOW yalnızca GROUP BY içindeki boyutlara referans verebildiğinden söz dizimi hatasına neden olur.

HAVING

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:

WITH TOTALS kullanılan örnek ShopifyQL satış tablosu.
GünBrüt satışlarNet satışlarToplam satışBrüt satışların toplamıNet satışların toplamıToplam satışlar
01.01.202414761524
02.01.202425861524
01.03.202436961524

GROUP_TOTALS

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:

GROUP_TOTALS kullanılan örnek ShopifyQL satış tablosu.
ÜlkeMüşteri kimliğiToplam satışToplam satışlar ülke toplamlarıToplam satışlar
ABD1101
ABDnull-111
Kanada1111

PERCENT_CHANGE

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 orders
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month ALL
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:

Saniye, dakika veya belirli bir tarihe göre tarih aralıkları oluşturmak gibi ShopifyQL tarih aralığı operatörlerinin listesi.
Tarih aralığı operatörüAçıklama
-{#}sSorgunun çalıştırıldığı tarih ve saatten itibaren geçen saniye sayısı.
-{#}minSorgunun çalıştırıldığı tarih ve saatten itibaren geçen dakika sayısı.
-{#}hSorgunun çalıştırıldığı tarih ve saatten itibaren geçen saat sayısı.
-{#}dSorgunun çalıştırıldığı tarih ve saatten itibaren geçen gün sayısı.
-{#}wSorgunun çalıştırıldığı tarih ve saatten itibaren geçen hafta sayısı.
-{#}mSorgunun çalıştırıldığı tarih ve saatten itibaren geçen ay sayısı.
-{#}qSorgunun çalıştırıldığı tarih ve saatten itibaren geçen çeyrek sayısı.
-{#}ySorgunun çalıştırıldığı tarih ve saatten itibaren geçen yıl sayısı.
yyyy-MM-ddBelirli bir tarih.
yyyy-MM-ddThh:mm:ssBelirli bir tarih ve saat.

Tarih işlevleri

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.

Gün sonu veya çeyrek başlangıcı gibi ShopifyQL tarih işlevlerinin listesi.
Tarih işleviAçıklama
nowSorgunun ç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.
endOfWeek(-{#}w)Tarih aralığı operatörünü hedef haftanın sonuna kadar kısaltır.
startOfMonth(-{#}m)Tarih aralığı operatörünü hedef ayın başlangıcına kadar kısaltır.
endOfMonth(-{#}m)Tarih aralığı operatörünü hedef ayın sonuna kadar kısaltır.
startOfQuarter(-{#}q)Tarih aralığı operatörünü hedef çeyreğin başlangıcına kadar kısaltır.
endOfQuarter(-{#}q)Tarih aralığı operatörünü hedef çeyreğin sonuna kadar kısaltır.
startOfYear(-{#}y)Tarih aralığı operatörünü hedef yılın başlangıcına kadar kısaltır.
endOfYear(-{#}y)Tarih aralığı operatörünü hedef yılın sonuna 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:

ShopifyQL adlandırılmış tarih aralığı operatörlerinin listesi (ör. bugün, dün veya bu hafta)
Adlandırılmış tarih aralığı operatörüAçıklama
todaySorgunun çalıştırıldığı tarih.
yesterdaySorgunun ç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ı.
bfcmYYYYBelirtilen 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çin GROUP BY yerine TIMESERIES öğ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:

Önceki dönem veya önceki yıl gibi ShopifyQL göreli tarih aralığı operatörlerinin listesi.
Göreli tarih aralığı operatörüAçıklama
previous_periodTemel tarih aralığından bir dönem önce.
previous_yearTemel tarih aralığından bir yıl önce.
previous_quarterTemel tarih aralığından bir çeyrek önce.
previous_monthTemel tarih aralığından bir ay önce.
previous_weekTemel tarih aralığından bir hafta önce.
previous_dayTemel tarih aralığından bir gün önce.
previous_hourTemel tarih aralığından bir saat önce.
previous_minuteTemel tarih aralığından bir dakika önce.
previous_secondTemel tarih aralığından bir saniye önce.

ORDER BY

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.

ShopifyQL kullanılıp ORDER BY mevcut olduğunda TIMESERIES örneği ve sütunların sırası.
TIMESERIESORDER BYSonuç
BulunuyorMevcut değilSonuçlar TIMESERIES boyutuna göre sıralanır.
BulunuyorBulunuyorSonuçlar TIMESERIES zaman boyutuna ve ardından ORDER BY boyutuna göre sıralanır.
Mevcut değilBulunuyorSonuçlar ORDER BY boyutuna göre sıralanır.
Mevcut değilMevcut değilSonuçlar ilk SHOW sütununa göre sıralanır.

LIMIT

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üğü isteğe bağlıdır. Bir sütunu yeniden adlandırmanıza (ya da diğer ad sağlamanıza) veya toplama işlevinin değerini döndürmenize olanak tanı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 işlevleri ve operatörleri

ShopifyQL aşağıdaki ek operatörleri ve işlevleri içerir:

Matematiksel operatörler

ShopifyQL, verilerinizdeki metriklerle aritmetik işlemler yapılmasına izin verir. Mevcut matematiksel operatörler aşağıda verilmiştir:

Artı ve eksi dahil olmak üzere ShopifyQL matematiksel operatörlerinin listesi.
Matematiksel OperatörAçı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, aşağıdaki sorguda her bölge için son bir yıldaki sipariş değeri hesaplanır. Matematiksel operatörleri metriklerle kullanırken, yeni metriğe yeni bir ad atamak için AS anahtar sözcüğünü kullanabilirsiniz.

FROM sales
SHOW (net_sales + returns) AS order_value, orders, (net_sales + returns)/orders AS sales_per_order
GROUP BY billing_region
SINCE -1y
UNTIL today

İşlevler

ShopifyQL işlevleri, Microsoft Excel'deki pivot tablolara benzer şekilde sütunları toplamanıza veya yeni bir değer oluşturmak için bunları birleştirmenize olanak tanır. ShopifyQL'in güncel sürümünde aşağıdaki işlev operatörleri mevcuttur:

Kırpma ve yuvarlama gibi desteklenen ShopifyQL işlevlerinin listesi.
İşlev operatörüAçıklama
TRIM(column_name)Bir dizenin başındaki ve sonundaki boşlukları kaldırır.
ROUND(column_name, decimal_places)Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
  • If decimal_places > 0, then the function rounds the value to the right of the decimal point.
  • If decimal_places < 0, then the function rounds the value to the left of the decimal point.
  • If decimal_places = 0, then the function rounds the value to integer. In this case, the argument can be omitted entirely.

For example, this query uses the rounding function on the gross_sales column, but omits the decimal_places argument to round the value to the integer:

FROM sales
SHOW average_order_value, round(gross_sales)
GROUP BY billing_region
SINCE 2021-01-01
UNTIL 2021-12-31

Implicit joins

A join allows you to view metrics from different domains together, side by side. Joins are done implicitly and intelligently in ShopifyQL.

ShopifyQL has the following join capabilities:

  • ShopifyQL allows dimension field joins when there is a single FROM table in the query.
  • Automatic left join on dimension fields.
  • ShopifyQL allows multi-fact joins (when there are multiple FROM tables in the queries).
  • Automatic full join on multi-fact joins, which support any number of tables or schemas and grouped by dimensions.
  • Metrics in multi-fact joins can use functions and math.

Shopify QL has the following join restrictions:

  • Join field must have the same name in all joined schemas.
  • Join field must be in GROUP BY.
  • Join field can't use functions or math.
  • FROM is necessary for multi-fact joins to work.
  • In a multi-fact join, every GROUP BY must be in all schemas and is considered a field on which to be joined.

For example, this query uses a multi-fact join:

FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day

Partial string and array matching

You can use the following operators for partial string and array matching:

List of Partial string and array matching operators in ShopifyQL.
OperatorDescription
STARTS WITHReturn all rows where a column starts with a prefix.
ENDS WITHReturn all rows where a column ends with a suffix.
CONTAINSReturn all rows where a column contains a part of a string, or an element in an array.

Some examples of partial string matching using operators include the following queries:

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

The CONTAINS operator can be used to match elements within arrays, including integers, strings, and decimals. This matching isn't case-sensitive. Some examples of array matching using CONTAINS include the following queries:

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

Comments

You can use comments to explain sections of ShopifyQL statements, or to prevent the execution of a ShopifyQL statement. Any text within a comment will be ignored during execution time.

Single line comments start with -- and end at the end of the line.

Multi-line comments start with /* and end with */.

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
*/
Aradığınız cevapları bulamıyor musunuz? Yardımcı olmak için buradayız.