Google Görselleştirme API'sı Sorgu Dili, veri kaynağına yapılan sorguyla çeşitli veri manipülasyonlarını gerçekleştirmenize olanak tanır.
İçindekiler
Giriş
Genellikle görselleştirmeler, verileri belirli bir biçimde bekler. Örneğin, bir pasta grafik, metin etiketi ve sayısal değer olmak üzere iki sütun halinde veri bekleyebilir. Veri kaynağındaki veriler bu yapıyla tam olarak eşleşmeyebilir. Örneğin, veri kaynağında ikiden fazla sütun olabilir veya sütunların sırası pasta grafiğin beklediği sıralamayla eşleşmeyebilir.
Sorgu dili, veri kaynağına veri manipülasyonu ve biçimlendirme istekleri gönderme ve döndürülen veri yapısının ve içeriğin beklenen yapıyla eşleştiğinden emin olma özelliğini sağlar.
Sorgu dilinin söz dizimi SQL'e benzer. SQL'e aşina olan geliştiriciler bu sorgu dilini hızlıca öğrenip kullanabilirler. Web'de SQL eğitimleri bulabilirsiniz. Söz dizimi bölümünde açıklanan bu sorgu dili ile SQL arasında bazı farklılıklar vardır.
Veri kaynaklarının sorgu dilini uygulamak için gerekli olduğunu veya uyguladıkları durumlarda dilin tüm özelliklerini uygulamak zorunda olmadıklarını unutmayın. Başka bir neden olarak düşünülmediği sürece bu dilin tüm özelliklerini uygulamak için bir veri kaynağına güvenmemeniz gerekir.
Sorgu Dilini Kullanma
Bir veri kaynağı isteğine sorgu dizesini iki şekilde ekleyebilirsiniz: Sorgu kodunu JavaScript kodu içinden ayarlamak veya sorgu dizesini veri kaynağı URL'sinde bir parametre olarak ayarlamak. İsteğiniz bir sorgu dizesi içermiyorsa veri kaynağının varsayılan davranışı, varsayılan satır/sütun düzeni ve biçimlendirmesini kullanarak tüm satır ve sütunları döndürmektir. Bunu, isteğinize bir veri kaynağına sorgu dizesi ekleyerek değiştirebilirsiniz.
JavaScript'ten Sorgu Ayarlama
Sorgu dizesini JavaScript kodunun içinden ayarlamak için google.visualization.Query
sınıfının setQuery
yöntemini çağırın.
var query = new google.visualization.Query(DATA_SOURCE_URL); query.setQuery('select dept, sum(salary) group by dept'); query.send(handleQueryResponse);
Veri Kaynağı URL'sinde Sorgu Ayarlama
Sorgu dizesi, tq
parametresi kullanılarak veri kaynağı URL'sine eklenebilir.
Sorguyu JavaScript yerine URL parametresinde ayarlamak, diğer geliştiriciler tarafından yazılan görselleştirmeleri kolayca kullanmanıza ve yine de sorguyu özelleştirmenize olanak tanır.
Sorgu dizesi doğru şekilde bir URL parametresi olarak kodlanmalıdır.
JavaScript encodeURIComponent
işlevini kullanarak bir URL'yi kodlayabilir veya bu bölümün sonundaki kodlama aracını kullanarak URL'yi elle kodlayabilirsiniz.
Örnek:
Bir Google E-Tablosu için aşağıdaki sorgu dizesini düşünün. (E-tablolardaki sütun kimliklerinin her zaman harf olduğunu unutmayın. Yayınlanan e-tabloda gösterilen sütun başlığı metni kimlik değil, etikettir. Sorgu dizenizde etiketi değil, kimliği kullanmanız gerekir.)
select A, sum(B) group by A
Kodlandığında bu sorgu haline gelir:
select%20A%2C%20sum(B)%20group%20by%20A
E-tablonuzun URL'si olduğunu varsayalım:
https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4
Son sorgu dizenizi almak için e-tablo URL'sine /gviz/tq?tq=
YOUR_QUERY_STRING ekleyin:
https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4/gviz/tq?tq=select%A%2C%20sum(B)%20group%20by%20A
Bir sorgu dizesini kodlamak veya kodunu çözmek için aşağıdaki aracı kullanın:
Not: Özel e-tablo verilerine erişmek için OAuth kullanılarak açık yetkilendirme kimlik bilgilerinin iletilmesi gerekir. Daha fazla bilgi için Google E-Tablolar: Yetkilendirme bölümüne bakın.
Dil Söz Dizimi
Genel bakış
Google Görselleştirme API'sı Sorgu Dili söz dizimi, SQL söz dizimine benzer şekilde tasarlanmıştır. Bununla birlikte, SQL'in bir alt kümesidir. Bu sürümde, öğrenmeniz gereken birkaç özellik bulunur. SQL'e aşinaysanız öğrenmesi çok zor olmamalıdır.
Veri Tabloları
Bu dokümanda, bir sorgunun sonuç kümesinden bahsedilmesi için veri tablosu terimi kullanılır. Veri tablosu, satır ve sütunlardan oluşur. Veri tablosundaki her bir sütun aşağıdaki özelliklere sahiptir:
- Tanımlayıcı (veya sütun kimliği). Sorgudaki sütunlara referans vermek için kullanılır. Bir sorguda hiçbir zaman etikete göre sütuna referans vermemeniz gerektiğini, yalnızca tanımlayıcıya göre hareket etmeniz gerektiğini unutmayın. İpucu: Boşluk içeren herhangi bir kimlik kullanmayın. Alanların yönetilmesi zordur ve kodlamanızda küçük ama zor hatalar yapmanıza neden olabilir. Ayrıca, boşluk içeren bir kimlik için çift tırnak işareti seçilmelidir.
- Etiket. Genellikle son kullanıcılara gösterilen bir
string
. Örneğin, pasta grafikte bir açıklama veya tablodaki bir sütun başlığı olabilir. - Veri türü. Desteklenen veri türleri şunlardır:
string
,number
,boolean
,date
,datetime
vetimeofday
. Bir sütunun tüm değerleri, sütun türüyle eşleşen bir veri türüne veyanull
değerine sahip olur. Bu türler, bu sayfanın Edebiyatlar bölümünde açıklanan JavaScript türlerine benzer ancak aynı değildir. - Biçimlendirme kalıbı. Veri kaynağı, sütunlarının bazıları veya tümü için biçimlendirme kalıpları tanımlayabilir. Bir biçim ifadesi ekleyerek bu kalıbı geçersiz kılabilirsiniz.
Tüm örneklerde kullanılan tablo:
Bu bölümde, tüm sorgu örnekleri aşağıdaki tabloya yöneliktir. Sütun başlıkları, sütun tanımlayıcılarıdır.
adstring |
ayrıntıstring |
öğle saatitimeofday |
maaş number |
işe alma tarihidate |
yaşnumber |
Yaşlıboolean |
yaşlılıkBaşlangıç Zamanıdatetime |
---|---|---|---|---|---|---|---|
Cem | Eng | 12:00:00 | 1.000 | 2005-03-19 | 35 | true | 02.12.2007 15:56:00 |
Dave | Eng | 12:00:00 | 500 | 2006-04-19 | 27 | yanlış | boş |
Selin | Eng | 13:00:00 | 600 | 2005-10-10 | 30 | yanlış | boş |
Berk | Satış | 12:00:00 | 400 | 2002-10-10 | 32 | true | 09.03.2005 12:30:00 |
Dana | Satış | 12:00:00 | 350 | 2004-09-08 | 25 | yanlış | boş |
Mehmet | Marketing | 13:00:00 | 800 | 2005-01-10 | 24 | true | 30.12.2007 14:40:00 |
Dil Maddeleri
Sorgu dilinin söz dizimi aşağıdaki maddelerden oluşur. Her cümle bir veya iki anahtar kelimeyle başlar. Tüm maddeler isteğe bağlıdır. Maddeler boşluklarla ayrılır. Maddelerin sırası aşağıdaki gibi olmalıdır:
Madde | Kullanım |
---|---|
select |
Hangi sütunların hangi sırayla döndürüleceğini seçer. Atlanırsa tablonun tüm sütunları varsayılan sırada döndürülür. |
where |
Yalnızca bir koşulla eşleşen satırları döndürür. Atlanırsa tüm satırlar döndürülür. |
group by |
Satırlardaki değerleri toplar. |
pivot |
Sütunlardaki farklı değerleri yeni sütunlara dönüştürür. |
order by |
Satırları sütunlardaki değerlere göre sıralar. |
limit |
Döndürülen satır sayısını sınırlar. |
offset |
Belirli sayıda ilk satırı atlar. |
label |
Sütun etiketlerini ayarlar. |
format |
Belirtilen biçimlendirme kalıplarını kullanarak belirli sütunlardaki değerleri biçimlendirir. |
options |
Ek seçenekleri belirler. |
from |
from yan tümcesi dilden çıkarıldı. |
Seç
select
yan tümcesi, döndürülecek sütunları ve sıralarını belirtmek için kullanılır.
Bu yan tümce belirtilmezse veya select *
kullanılırsa veri kaynağı tablosunun tüm sütunları orijinal sırasıyla döndürülür.
Sütunlara tanımlayıcılar tarafından referans verilir (etiketlere göre değil). Örneğin, bir Google E-Tablosunda sütun tanımlayıcıları bir veya iki karakterlik sütun harfleridir (A, B, C, ...).
select
koşulundaki öğeler sütun tanımlayıcıları veya toplama işlevleri, skaler işlevler veya operatörlerin sonucu olabilir.
Örnekler:
select *
select dept, salary
select max(salary)
Aşağıdaki örnekte çift tırnak, boşluk (e-posta adresi) içeren veya ayrılmış kelimeler (tarih) içeren sütun kimliklerine referans vermek için kullanılır:
select `email address`, name, `date`
Örnek tabloda şu sorguyu çalıştırın:
select lunchTime, name
Aşağıdaki yanıtı döndürür:
öğle saati | ad |
---|---|
12:00:00 | Cem |
12:00:00 | Dave |
13:00:00 | Selin |
12:00:00 | Berk |
12:00:00 | Dana |
13:00:00 | Mehmet |
Yer
where
koşulu yalnızca belirli bir koşulla eşleşen satırları döndürmek için kullanılır.
Basit karşılaştırma operatörleri <=, <, >, >=, =,
!=, <>
. İki karşılaştırma operatörü de != <>
eşit olmayan anlamına gelir. Dizeler, sözlük değeri ile karşılaştırılır. Eşitliğin =
ile gösterildiğini, çoğu bilgisayar dilinde olduğu gibi ==
olmadığını unutmayın.
null
ile karşılaştırma, is null
veya is not null
kullanılarak yapılır.
and
, or
ve not
mantıksal operatörlerini kullanarak birden fazla koşulu birleştirebilirsiniz. Parantezler, açık önceliği tanımlamak için kullanılabilir.
Bu yan tümce, bazı daha karmaşık dize karşılaştırma operatörlerini de destekler.
Bu operatörler iki dizeyi bağımsız değişken olarak alır. Dize olmayan bağımsız değişkenler (ör. tarihler veya sayılar) karşılaştırmadan önce dizelere dönüştürülür. Dize eşleşmesi büyük/küçük harfe duyarlıdır (bunun üstesinden gelmek için upper()
veya lower()
skaler işlevleri kullanabilirsiniz).
contains
- Bir alt dize eşleşmesi. Tamcontains
bölüm, tamamının herhangi bir yerindeyse doğrudur. Örnek:where name contains 'John'
; "John", "John Adams", "Uzun John Silver" ile eşleşir ancak "john Adams" ile eşleşmez.starts with
- Ön ek eşleşmesi. değerstarts with
önek, değer'in başındaysa doğrudur. Örnekler:where dept starts with 'engineering'
, "mühendislik" ve "mühendislik yöneticileri" ile eşleşir.where dept starts with 'e'
; "engineering", "eng" ve "e" ile eşleşir.ends with
- Bir son ek eşleşmesi. değer sonek değeri son'un sonundaysa doğrudur. Örnek:where role ends with 'y'
"cowboy", "boy" ve "y" ile eşleşir.matches
- A (önceden) normal ifade eşleşmesi. haystack needle içindeki normal ifade haystack ile eşleşiyorsa needle doğru değerini alır. Örnekler:where country matches '.*ia'
Hindistan ve Nijerya ile eşleşir, ancak Indiana ile eşleşmez. Bunun genel bir arama olmadığını, dolayısıylawhere country matches 'an'
"Kanada" ile eşleşmeyeceğini unutmayın.like
- İki joker karakteri destekleyen bir metin araması: Herhangi bir karakterle sıfır veya daha fazla karakterle eşleşen % ve her karakterle eşleşen _ (alt çizgi) karakteri. Bu, SQL LIKE operatörüne benzer. Örnek:where name like fre%
"fre", "fred" ve "freddy" ile eşleşir.
Örnekler:
where salary >= 600 where dept != 'Eng' and date '2005-01-21' < hireDate where (dept<>'Eng' and isSenior=true) or (dept='Sales') or seniorityStartTime is null
Örnek tabloda şu sorguyu çalıştırın:
select name where salary > 700
Aşağıdaki yanıtı döndürür:
ad |
---|
Cem |
Mehmet |
Gruplandırma ölçütü
group by
koşulu, değerleri satırlar genelinde toplamak için kullanılır.
Gruplama yan tümcesindeki her bir farklı değer kombinasyonu için tek bir satır oluşturulur.
Veriler, bir order by
ifadesi tarafından aksi belirtilmedikçe, gruplama sütunlarına göre otomatik olarak sıralanır.
Not: group by
koşulu kullanıyorsanız select
yan tümcesinde listelenen her sütunun group by
yan tümcesinde listelenmesi veya bir toplama işleviyle sarmalanması gerekir.
Örnekler:
select dept, max(salary) group by dept
Örnek tabloda şu sorguyu çalıştırın:
select lunchTime, avg(salary), count(age) group by isSenior,lunchTime
Aşağıdaki yanıtı döndürür:
öğle saati | ort. maaş | reşit olma yaşı |
---|---|---|
12:00:00 | 425 | 2 |
13:00:00 | 600 | 1 |
12:00:00 | 700 | 2 |
13:00:00 | 800 | 1 |
Özet
pivot
koşulu, sütunlardaki farklı değerleri yeni sütunlara dönüştürmek için kullanılır. Örneğin, "yıl" sütununa göre pivot tablo oluşturmak, orijinal tabloda görünen her farklı yıl için sütun içeren bir tablo oluşturur.
Bu özellik, örneğin bir çizgi grafik görselleştirme her sütunu ayrı bir çizgi olarak çiziyorsa yararlı olabilir. Her yıl için ayrı bir satır çizmek istiyorsanız ve orijinal tablodaki sütunlardan biri "yıl" ise gerekli veri dönüşümünü gerçekleştirmek için bir pivot işlem kullanmanız önerilir.
Not: pivot
ifadesi kullanıyorsanız select
yan tümcesinde listelenen her sütunun group by
yan tümcesinde listelenmesi veya bir toplama işleviyle sarmalanması gerekir
Pivot sütunlar için birden fazla satır aynı değerleri içerebileceğinden
pivot tablo toplama işlemini ifade eder. pivot
özelliğini group by
kullanmadan kullanırken sonuç tablosunun tam olarak bir satır içereceğini unutmayın.
Örneğin, aşağıdaki örneği örnek tabloda çalıştırmak:
select sum(salary) pivot dept
Aşağıdaki yanıtı döndürür:
Mühendislik maaşı | Pazarlama toplam maaşı | Satış toplam maaşı |
---|---|---|
2100 | 800 | 750 |
Bunun nedeni, 2100 ABD mühendisliği için maaşların, Pazarlama departmanı için 800 vb. olmasıdır.
Her hücrenin alakalı satır ve ilgili sütun için toplama işlemini içeren bir tablo oluşturduğundan pivot
parametresini group by
ile birlikte kullanmak daha yararlı olabilir. Örneğin, aşağıdaki örneği örnek tabloda çalıştırmak:
select dept, sum(salary) group by dept pivot lunchTime
Aşağıdaki yanıtı döndürür:
ayrıntılı | 12:00:00 toplam maaş | 13:00:00 toplam maaş |
---|---|---|
Eng | 1.500 | 600 |
Marketing | boş | 800 |
Satış | 750 | boş |
Ayrıca, pivot
sütunları ile group by
sütunları arasında geçiş yaparak sütunları ve satırları değiştirerek bu tabloyu "dönüştürebilirsiniz". Aşağıdaki örneği örnek tabloda çalıştırmak:
select lunchTime, sum(salary) group by lunchTime pivot dept
Aşağıdaki yanıtı döndürür:
öğle saati | Mühendislik maaşı | Pazarlama toplam maaşı | Satış toplam maaşı |
---|---|---|---|
12:00:00 | 1.500 | boş | 750 |
13:00:00 | 600 | 800 | boş |
pivot
yan tümcesinde birden fazla sütun da kullanabilirsiniz. Böyle bir durumda, yanıt tablosunun sütunları, orijinal tabloda bulunan sütunlardaki tüm benzersiz değer kombinasyonlarından oluşur. Örneğin, aşağıdaki örneği örnek tabloda çalıştırmak:
select sum(salary) pivot dept, lunchTime
Aşağıdaki yanıtı döndürür:
İngilizce,12:00:00 maaş | İngilizce,13:00:00 maaş | Pazarlama,13:00:00 Toplam maaş | Satış,12:00:00 toplam maaş |
---|---|---|---|
1.500 | 600 | 800 | 750 |
Yanıt tablosunda yalnızca orijinal tabloda görünen kombinasyonlara sütun verildiğini unutmayın. Bu nedenle Pazarlama,12:00:00 veya Satış,13:00:00 için bir sütun yoktur.
Birden fazla toplama da yapmak mümkündür. Örneğin, aşağıdaki örneği örnek tabloda çalıştırmak:
select sum(salary), max(lunchTime) pivot dept
Aşağıdaki yanıtı döndürür:
Mühendislik maaşı | Pazarlama toplam maaşı | Satış toplam maaşı | İngilizce maksimum öğle yemeği zamanı | Pazarlama maksimum öğle saati | Satış maksimum öğle saati |
---|---|---|---|---|---|
2100 | 800 | 750 | 13:00:00 | 13:00:00 | 12:00:00 |
select
yan tümcesinde birden fazla toplama, group by
yan tümcesinde birden fazla sütun ve pivot
yan tümcesinde birden fazla sütun birleştirebilirsiniz. Dahili olarak toplama, gruptaki sütunların ve pivot yan tümcelerin birleştirilmesiyle gerçekleştirilir.
pivot
yan tümcesinde belirtilen sütunlar select
, group by
veya order by
yan tümcelerinde görünmeyebilir.
pivot
kullanıldığında order by
yan tümcesi hiçbir toplama sütunu içeremez. Bunun nedeni, select
yan tümcesinde belirtilen her toplama için sonuç tablosunda birçok sütunun oluşturulmasıdır. Ancak, pivot
kullanıldığında toplama sütunlarını biçimlendirebilirsiniz. Bu tür bir biçimin sonucu olarak, pivot işlemle oluşturulan belirli bir toplamayla ilgili tüm yeni sütunlar belirtilen kalıpa göre biçimlendirilir. Yukarıdaki örnekte format sum(salary) "some_format_string"
eklendiğinde şu sütunlar etkilenir: İngilizce toplam maaş, Pazarlama toplam maaşı ve Satış toplamı maaşı.
Toplama sütunlarını etiketleyebilirsiniz. label
yan tümcesinde bir etiket belirtilmezse özetleme sonucunda oluşturulan bir sütun, pivot sütunlardaki değer listesinden, toplama türünden (min., maks., toplam, ...) ve birleştirilmiş sütunun etiketinden oluşur.
Örneğin, "Mühendislik, 12:00:00 Toplam Maaş". select
yan tümcesinde yalnızca bir toplama belirtilmişse toplama bölümü etiketten kaldırılır ve yalnızca pivot sütunlardaki değer listesi saklanır. Örneğin "Mühendislik,12:00:00". label
koşulu, bir toplama sütunu için bir etiket belirtiyorsa hem select
yan tümcesinde yalnızca bir toplama olduğunda hem de birden fazla var olduğunda istenen etiket değer listesine eklenir. Örneğin, label sum(salary) "sumsal"
, "Mühendislik, 12:00:00 toplam", "Mühendislik, 13:00:00 toplam" vb. sütun etiketleriyle sonuçlanır.
Sıralama ölçütü
order by
koşulu, satırları belirtilen sütunlardaki değerlere göre sıralamak için kullanılır.
order by
koşulundaki öğeler sütun tanımlayıcıları veya toplama işlevleri, skaler işlevler veya operatörlerin sonucu olabilir.
Örnekler:
order by dept, salary desc
select dept, max(salary) group by dept order by max(salary)
Sınır
limit
yan tümcesi, döndürülen satır sayısını sınırlandırmak için kullanılır.
Örnek:
limit 100
Ofset
offset
yan tümcesi, belirli sayıda ilk satırı atlamak için kullanılır.
limit
ibaresi kullanılırsa önce offset
uygulanır: Örneğin, limit 15 offset
30
31 ile 45 arasındaki satırları döndürür.
Örnekler:
offset 10 limit 30 offset 210
Etiket
label
koşulu, bir veya daha fazla sütunun etiketini ayarlamak için kullanılır.
Sorguda kimlik yerine etiket değeri kullanamayacağınızı unutmayın.
label
koşulundaki öğeler sütun tanımlayıcıları veya toplama işlevleri, skaler işlevler veya operatörlerin sonucu olabilir.
Söz dizimi:
label column_id label_string [,column_id label_string]
column_id
- Etiketin atandığı sütunun tanımlayıcısı.
label_string
- İlgili sütuna atanacak etiket. Birçok görselleştirmede son kullanıcıya gösterilecek metin olarak sütun etiketi kullanılır (ör. pasta grafikte açıklama etiketi). Etiketler, dize değişmez değerleridir ve bu söz dizimi kurallarını uygular.
Örnek:
Aşağıdaki örnekte dept sütununun etiketi "Bölüm", ad sütununun etiketi "Çalışan Adı" ve konum sütununun etiketi "Çalışan Konumu" olarak ayarlanmıştır:
label dept 'Department', name "Employee Name", location 'Employee Location'
Biçim
format
koşulu, bir veya daha fazla sütundaki hücreler için biçimlendirilmiş bir değer belirtmek amacıyla kullanılır. Döndürülen veriler, biçimlendirilmiş bir sütundaki her bir hücre için hem gerçek bir değer hem de biçimlendirilmiş bir değer içermelidir. Birçok görselleştirmede hesaplamalar için
biçimlendirilmemiş değer kullanılır, ancak görüntülü reklamlar için biçimlendirilmiş değer kullanılır. Bu cümlede belirttiğiniz kalıplar genellikle ilgili sütunların desen özelliğinde döndürülür.
Kalıp Söz Dizimi:
number
,date
,timeofday
,datetime
- ICU tarafından tanımlanan tarih ve sayı kalıpları.
-
boolean
- Desen, "value-if-true:value-if-false" biçiminde
string
şeklindedir.
Örnek:
format salary '#,##0.00', hireDate 'dd-MMM-yyyy', isSenior 'Yes!:Not yet'
Seçenekler
options
koşulu, sorgu yürütmeyle ilgili ek seçenekleri kontrol etmek için kullanılır. options
yan tümcesini uygulayabilecek olası anahtar kelimeler şunlardır:
-
no_format
Biçimlendirilmiş değerleri sonuçtan kaldırır ve yalnızca temel değerleri bırakır. Belirli görselleştirmeler, yanıtın boyutunu küçültmek için biçimlendirilmiş değerleri kullanmadığında kullanılabilir. -
no_values
Temeldeki değerleri sonuçtan kaldırır ve yalnızca biçimlendirilmiş değerleri bırakır. Belirli görselleştirmeler, yanıtın boyutunu azaltmak için yalnızca biçimlendirilmiş değerleri kullandığında kullanılabilir.
Veri Manipülasyon İşlevleri
Tek bir sütunda verileri değiştirmenize veya birleştirmenize ya da verileri sütunlar arasında karşılaştırmanıza veya birleştirmenize olanak tanıyan çeşitli operatör ve işlevler vardır. Toplam değerler (sütundaki tüm değerleri eklemek için), maksimum (sütundaki en büyük değeri bulmak için) ve + (iki sütunun değerlerini aynı satıra eklemek için) olabilir.
Bazı işlevler herhangi bir yan tümcede, bazıları da maddelerin bir alt kümesinde görünebilir. Bu belge aşağıda açıklanmıştır.
Örnek:
Bu tablo göz önüne alındığında... | Bu sorguyu uygularsak... | Bu sonucu alıyoruz. | ||||||||||||||||||||||||
|
select upper(name), year(startDate) |
|
Aşağıdaki veri manipülasyon işlevleri Google Görselleştirme API'sı sorgu dilinde tanımlanır:
Toplama İşlevleri
Toplama işlevleri tek bir sütun tanımlayıcısına
sahiptir ve her gruptaki tüm değerlerde bir işlem gerçekleştirir (gruplar, group by
veya pivot
yan tümceleriyle veya bu yan tümceler kullanılmıyorsa tüm satırlarla belirtilir).
Örnekler:
select max(salary) // Returns a table with one column and one row. select max(salary) group by dept // Returns a table with the max salary for each dept column value. select max(salary) pivot dept // Returns a one-row table with a column for each dept, // and the max salary for that department.
Toplama işlevleri select
, order by
, label
ve format
yan tümcelerinde kullanılabilir.
Bu ifadeler where
, group by
, pivot
, limit
, offset
veya options
yan tümcelerinde görünmez.
Desteklenen toplama işlevleri şunlardır:
Ad | Açıklama | Desteklenen Sütun Türleri | Dönüş Türü |
---|---|---|---|
avg() |
Bir grubun sütunundaki tüm değerlerin ortalama değerini döndürür. | number |
number |
count() |
Bir grup için belirtilen sütunda bulunan öğelerin sayısını döndürür. Boş hücreler sayılmaz. | Tüm türler | number |
max() |
Bir grup için sütundaki maksimum değeri döndürür. Tarihler daha küçükken, string tarihleri alfabetik olarak ve büyük/küçük harfe duyarlılık açısından karşılaştırılır. |
Tüm türler | Sütunla aynı türde |
min() |
Bir grubun sütunundaki minimum değeri döndürür. Tarihler daha küçükken, string 'ler alfabetik olarak ve büyük/küçük harfe duyarlılık ile karşılaştırılır |
Tüm türler | Sütunla aynı türde |
sum() |
Bir grubun sütunundaki tüm değerlerin toplamını döndürür. | number |
number |
Not: Toplama işlevleri yalnızca bir sütun tanımlayıcısını bağımsız değişken olarak alabilir:
max(startDate) // OK min(firstScore) + min(secondScore) // OK max(year(startDate)) // INVALID. max requires column ID sum(salary + perks) // INVALID. sum requires column ID.
Skalar İşlevler
Skaler işlevler başka bir değer üretmek için sıfır veya daha fazla parametre üzerinde çalışır. Skaler işlevler, uygun türdeki parametreye karşılık gelen herhangi bir ifade iletilebilir. Bu türlerin, bu dokümanın Edebiyat bölümünde tanımlanan ve benzer ada sahip JavaScript nesnelerinden biraz farklı olabilecek türler olduğunu unutmayın.
Sütun adının, skalar işlevle sarmalanarak değiştirileceğini unutmayın.
Skalar işlevleri, tek bir değere karşılık gelen her şeyi parametre olarak alabilir:
year(max(startDate)) datediff(now(), todate(1234567890000))
Skaler işlevler şu ifadelerden herhangi birinde kullanılabilir: select
,
where
, group by
, pivot
,
order by
, label,
ve
format
.
Ad | |
---|---|
year() |
Bir tarih veya tarih/saat değerindeki yıl değerini döndürür. Örneğin:
Parametreler:
date veya datetime türünde bir parametreİade Türü:
number |
month() |
Bir tarih veya tarih/saat değerindeki sıfıra dayalı ay değerini döndürür. Örneğin:
Parametreler:
date veya datetime türünde bir parametreİade Türü:
number |
day() |
Parametreler:
date veya datetime türünde bir parametreİade Türü:
number |
hour() |
Bir tarih/saat değeri veya Parametreler:
datetime veya timeofday türünde bir parametreİade Türü:
number |
minute() |
Parametreler:
datetime veya timeofday türünde bir parametreİade Türü:
number |
second() |
Parametreler:
datetime veya timeofday türünde bir parametreİade Türü:
number |
millisecond() |
Parametreler:
datetime veya timeofday türünde bir parametreİade Türü:
number |
quarter() |
Parametreler:
date veya datetime türünde bir parametreİade Türü:
number |
dayOfWeek() |
Parametreler:
date veya datetime türünde bir parametreİade Türü:
number |
now() |
GMT saat dilimindeki geçerli Parametreler: Yok
İade Türü:
datetime |
dateDiff() |
İki Parametreler:
date veya datetime türünde iki parametre (her biri olabilir)İade Türü:
number |
toDate() |
Belirtilen değeri
Parametreler:
date , datetime veya number türünde bir parametreİade Türü:
date |
upper() |
Belirtilen Parametreler:
string türünde bir parametreİade Türü:
string |
lower() |
Belirtilen Parametreler:
string türünde bir parametreİade Türü:
string |
Aritmetik Operatörleri
Tek bir sayıyı (yani uygun toplu işlevlerin, operatörlerin veya sabitlerin çıkışı) değerlendiren herhangi bir şey üzerinde matematik işlemleri yapmak için aritmetik operatörlerini kullanabilirsiniz.
Örnekler:
select empSalary - empTax select 2 * (max(empSalary) / max(empTax))
Aşağıdaki operatörler tanımlanır:
Ad | Açıklama | Parametreler | Dönüş Türü |
---|---|---|---|
+ |
İki number değerinin toplamını döndürür. |
İki number |
number |
- |
İki number değeri arasındaki farkı döndürür. |
İki number |
number |
* |
İki number ürününün çarpımını döndürür. |
İki number |
number |
/ |
İki number bölümünün bölümünü döndürür. Sıfıra bölme işlemi null döndürür. |
İki number |
number |
Dil Öğeleri
Edebiyat
Değişmez değerler, karşılaştırmalar veya ödevler için kullanılan değerlerdir. Değişmez değerler string
, sayılar, boole değerleri veya çeşitli tarih/saat türleri olabilir. Aşağıda, sorgu söz diziminde kullanılan değişmez değerlere bazı örnekler verilmiştir:
where startDate < date "2008-03-18" // date "2008-03-18" is a date literal
limit 30 // 30 is a numeric literal
format salary '#,##0.00', isSenior 'not yet:of course!' // '#,##0.00' and 'not yet:of course!' are both string
literals
Her bir değişmez tür için biçimler şunlardır:
string
string
değişmez değeri, tek veya çift tırnak içine alınmalıdır. Örnekler:"fourteen" 'hello world' "It's raining"
.-
number
- Sayısal değişmez değerler ondalık gösterimle belirtilir.
Örnekler:
3 3.0 3.14 -71 -7.2 .6
-
boolean
- Boole değişmez değerleri
true
veyafalse
şeklindedir. -
date
date
anahtar kelimesini ve ardındanyyyy-MM-dd
biçimindestring
değişmez değerini kullanın. Örnek:date "2008-03-18"
.-
timeofday
timeofday
anahtar kelimesini ve ardındanHH:mm:ss[.SSS]
string
sabit değerini kullanın Örnek:timeofday "12:30:45"
-
datetime
datetime
anahtar kelimesi veyatimestamp
anahtar kelimesinin ardındanyyyy-MM-dd HH:mm:ss[.sss]
biçimindestring
değişmez değeri kullanılan bir tarih ve saat. Örnek:datetime '2008-03-18 12:30:34.123'
Tanımlayıcılar
Tanımlayıcılar (veya kimlikler), sütunları tanımlayan string
metinleridir.
Önemli: Tanımlayıcınız
- Boşluklar var,
- Rezerve edilen bir kelime,
- Alfa-sayısal karakterler veya alt çizgiler dışında herhangi bir şey içerir ([a-zA-Z0-9_]) veya
- Bir rakamla başlar
tırnak işaretleri içine alınmalıdır (tek tırnaklarla değil).
Aksi takdirde tanımlayıcınızın tırnak içine alınması gerekmez. (Söz diziminin tanımladığı tüm anahtar kelimeler ayrılmış kelimeler değildir. Bu nedenle, örneğin "maks." değerini, çift tırnak içine almak zorunda kalmadan bir tanımlayıcı olarak kullanabilirsiniz.)
Örnekler: col1 employee_table `start
date` `7 days traffic` `select`
Geri tırnak işaretlerini kullanmayı unutmak veya "geri tırnak" yerine yanlışlıkla "tek tırnak" kullanmak kolay olabileceğinden, geri tırnak işareti gerektiren bir tanımlayıcı seçmenizi öneririz. Bunlar yaygın hatalardır ve genellikle hata ayıklaması zordur.
Büyük/küçük harfe duyarlılık
Tanımlayıcılar ve dize değişmez değerleri büyük/küçük harfe duyarlıdır. Diğer tüm dil öğeleri büyük/küçük harfe duyarlı değildir.
Ayrılmış Kelimeler
Aşağıdaki ayırt edici kelimeler, tanımlayıcı olarak kullanılırsa geri tırnak içine alınmalıdır:
and asc by date datetime desc false format group label limit not offset options or order pivot select timeofday timestamp true where