Google Görselleştirme API'sı Sorgu Dili, veri kaynağına sorgu göndererek çeşitli veri manipülasyonları yapmanıza olanak tanır.
İçindekiler
Giriş
Genellikle görselleştirmeler verilerin belirli bir biçimde olmasını bekler. Örneğin, bir pasta grafikte veriler, metin etiketi ve sayısal değer olmak üzere iki sütun halinde 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ırayla eşleşmeyebilir.
Sorgu dili, veri manipülasyonu ve biçimlendirme isteklerini veri kaynağına gönderme olanağı sağlar ve döndürülen veri yapısı ile içeriklerin beklenen yapıyla eşleştiğinden emin olur.
Sorgu dilinin söz dizimi SQL'e benzer. SQL konusunda bilgi sahibi olan geliştiriciler, bu sorgu dilini hızlıca öğrenip kullanabilir. Web'de birçok SQL eğiticisi bulabilirsiniz. Bu sorgu dili ile SQL arasında, syntax bölümünde açıklanan bazı farklılıklar vardır.
Veri kaynaklarının sorgu dilini uygulamak veya dilin tüm özelliklerini uygulamak için gerekli olmadığını unutmayın. Aksine inanmak için bir nedeniniz yoksa bu dilin tüm özelliklerini uygulamak için bir veri kaynağına güvenmemelisiniz.
Sorgu Dilini Kullanma
Bir veri kaynağı isteğine sorgu dizesini iki şekilde ekleyebilirsiniz: Sorgu dizesini JavaScript kodundan veya sorgu dizesini veri kaynağı URL'sinde parametre olarak ayarlayabilirsiniz. İsteğiniz bir sorgu dizesi içermiyorsa veri kaynağı için varsayılan davranış, varsayılan satır/sütun sırası ve biçimlendirmesini kullanarak tüm satır ve sütunları döndürmektir. Bir veri kaynağına yönelik isteğinize sorgu dizesi ekleyerek bunu değiştirebilirsiniz.
Sorguyu JavaScript'ten Ayarlama
Sorgu dizesini JavaScript kodundan 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 Sorguyu 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 sorguyu özelleştirmeye devam etmenize olanak tanır.
Sorgu dizesi, URL parametresi olarak doğru şekilde kodlanmalıdır.
JavaScript encodeURIComponent
işlevini kullanarak bir URL'yi 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, etiketlerdir. Sorgu dizenizde etiketi değil, kimliği kullanmanız gerekir.)
select A, sum(B) group by A
Bu sorgu kodlandığında şu şekilde olur:
select%20A%2C%20sum(B)%20group%20by%20A
Bu URL'nin 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 ifadesini 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 ayrıntı 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 olacak şekilde tasarlanmıştır. Ancak bu SQL'in bir alt kümesidir ve kendine ait bazı özellikleri öğrenmeniz gerekir. SQL hakkında bilginiz varsa öğrenmesi çok zor olmayacaktır.
Veri Tabloları
Bu dokümanda, bir sorgunun sonuç kümesini belirtmek için veri tablosu terimi kullanılmaktadır. Veri tablosu, satır ve sütunlardan oluşur. Bir veri tablosundaki her bir sütun aşağıdaki özelliklere sahiptir:
- Tanımlayıcı (veya sütun kimliği). Sorgu içindeki sütunlara referans vermek için kullanılır. Bir sorguda hiçbir zaman etikete göre sütuna, yalnızca tanımlayıcıya göre referansta bulunmaya çalışmanız gerektiğini unutmayın. İpucu: Boşluk içeren kimlikler kullanmamaya çalışın. Boşlukları yönetmek zordur ve kodlamanızda küçük ama bulunması zor hatalar yapmanıza neden olabilir. Boşluk içeren bir kimliğin de arka tırnak işareti içine alınması gerekir.
- Etiket. Genellikle son kullanıcılara gösterilen bir
string
. Örneğin, pasta grafikte gösterge veya tablodaki sütun başlığı olarak. - 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 Kelimeler bölümünde açıklanan JavaScript türlerine benzer ancak aynı değildir. - Biçimlendirme deseni. Veri kaynağı, sütunlarının bazıları veya tümü için biçimlendirme kalıpları tanımlayabilir. Bir biçim koşulu ekleyerek bu kalıbı geçersiz kılabilirsiniz.
Tüm örneklerde kullanılan tablo:
Bu bölüm boyunca, tüm sorgu örnekleri aşağıdaki tabloya bakın. Sütun başlıkları, sütun tanımlayıcılarıdır.
adstring |
departmanstring |
lunchTimetimeofday |
maaş number |
hireDatedate |
yaşnumber |
isSeniorboolean |
seniorityStartTimedatetime |
---|---|---|---|---|---|---|---|
Jehan | Eng | 12:00:00 | 1.000 | 2005-03-19 | 35 | true | 02.12.2007 15:56:00 |
Deniz | Eng | 12:00:00 | 500 | 2006-04-19 | 27 | false | null |
Selin | Eng | 13:00:00 | 600 | 2005-10-10 | 30 | false | null |
Ben | Satış | 12:00:00 | 400 | 2002-10-10 | 32 | true | 09.03.2005 12:30:00 |
Derya | Satış | 12:00:00 | 350 | 2004-09-08 | 25 | false | null |
Mike | 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 ifadelerden oluşur. Her ifade bir veya iki anahtar kelimeyle başlar. Tüm ifadeler 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 |
Döndürülecek sütunları ve bunların sıralamasını 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 |
Verilen biçimlendirme kalıplarını kullanarak belirli sütunlardaki değerleri biçimlendirir. |
options |
Ek seçenekleri ayarlar. |
from |
from ifadesi dilden kaldırıldı. |
Seç
select
ifadesi, döndürülecek sütunları ve sıralarını belirtmek için kullanılır.
Bu ifade belirtilmezse veya select *
kullanılıyorsa veri kaynağı tablosunun tüm sütunları orijinal sıralarında döndürülür.
Sütunlara tanımlayıcılar tarafından referans verilir (etiketlerle değil). Örneğin, bir Google E-tablosunda sütun tanımlayıcılar bir veya iki karakterli sütun harfidir (A, B, C, ...).
select
yan tümcesindeki öğeler, sütun tanımlayıcıları veya toplama işlevlerinin, skaler işlevlerin ya da operatörlerin çıktısı olabilir.
Örnekler:
select *
select dept, salary
select max(salary)
Aşağıdaki örnekte, boşluk (e-posta adresi) içeren veya ayrılmış kelimeler (tarih) içeren sütun kimliklerini referans göstermek için arka tırnak işaretleri kullanılmaktadır:
select `email address`, name, `date`
Örnek tabloda aşağıdaki sorguyu çalıştırma:
select lunchTime, name
Aşağıdaki yanıtı döndürür:
lunchTime | ad |
---|---|
12:00:00 | Jehan |
12:00:00 | Deniz |
13:00:00 | Selin |
12:00:00 | Ben |
12:00:00 | Derya |
13:00:00 | Mike |
Konum
where
ifadesi, yalnızca belirtilen bir koşulla eşleşen satırları döndürmek için kullanılır.
Basit karşılaştırma operatörleri şunlardır: <=, <, >, >=, =,
!=, <>
. Her iki karşılaştırma operatörü de != <>
eşit değildir anlamına gelir. Dizeler, sözlük değeriyle karşılaştırılır. Eşitliğin çoğu bilgisayar dilinde olduğu gibi ==
ile değil, =
ile belirtildiğini unutmayın.
null
ile karşılaştırma işlemi 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.
Burada yan tümcesi, daha karmaşık bazı dize karşılaştırma operatörlerini de destekler.
Bu operatörler, bağımsız değişken olarak iki dize alır. Dize olmayan bağımsız değişkenler (örneğin, tarihler veya sayılar) karşılaştırmadan önce dizelere dönüştürülür. Dize eşleştirme büyük/küçük harfe duyarlıdır (bu sorunu çözmek için upper()
veya lower()
skaler işlevlerini kullanabilirsiniz).
contains
- Alt dize eşleşmesi. Parti tüm içinde herhangi bir yerdeyse bütüncontains
parça doğrudur. Örnek:where name contains 'John'
; "Can", "Can Adam", "Uzun Cem Gümüş" ile eşleşir ancak "can adam" ile eşleşmez.starts with
- Ön ek eşleşmesi. önek, değer'in başındaysa değerstarts with
ön eki doğrudur. Örnekler:where dept starts with 'engineering'
, "mühendislik" ve "mühendislik yöneticileri" ile eşleşir.where dept starts with 'e'
"Engine", "eng" ve "e" ile eşleşir.ends with
- Bir son ek eşleşmesi. değerends with
sonek, sonek değer'in sonundaysa doğrudur. Örnek:where role ends with 'y'
; "kovboy", "oğlan" ve "y" ile eşleşir.matches
- A (preg) normal ifade eşleşmesi. haystackmatches
needle, needle içindeki normal ifade haystack ile eşleşirse doğrudur. Örnekler:where country matches '.*ia'
Hindistan ve Nijerya ile eşleşir ancak Indiana ile eşleşmez. Bunun genel bir arama olmadığını, bu nedenlewhere country matches 'an'
öğesinin "Kanada" ile eşleşmeyeceğini unutmayın.like
- İki joker karakteri destekleyen bir metin araması: herhangi bir türde sıfır veya daha fazla karakterle eşleşen % ve herhangi bir karakterle eşleşen _ (alt çizgi). Bu, SQL BENZER 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 aşağıdaki sorguyu çalıştırma:
select name where salary > 700
Aşağıdaki yanıtı döndürür:
ad |
---|
Jehan |
Mike |
Gruplandırma Ölçütü
group by
ifadesi, satırlar arasındaki değerleri toplamak için kullanılır.
Gruplandırma ölçütündeki her farklı değer kombinasyonu için tek bir satır oluşturulur.
order by
ifadesinde aksi belirtilmedikçe veriler otomatik olarak gruplandırma sütunlarına göre sıralanır.
Not: group by
ifadesini kullanırsanız select
yan tümcesinde listelenen her sütunun group by
ifadesinde listelenmesi veya bir toplama işlevi tarafından sarmalanması gerekir.
Örnekler:
select dept, max(salary) group by dept
Örnek tabloda aşağıdaki sorguyu çalıştırma:
select lunchTime, avg(salary), count(age) group by isSenior,lunchTime
Aşağıdaki yanıtı döndürür:
lunchTime | ort. maaş | sayma yaşı |
---|---|---|
12:00:00 | 425 | 2 |
13:00:00 | 600 | 1 |
12:00:00 | 700 | 2 |
13:00:00 | 800 | 1 |
Pivot
pivot
ifadesi, sütunlardaki farklı değerleri yeni sütunlara dönüştürmek için kullanılır. Örneğin, "yıl" sütununu özetleyerek, orijinal tabloda görünen her ayrı yıl için sütun içeren bir tablo oluşturabilirsiniz.
Örneğin, bir çizgi grafik görselleştirmesi her sütunu ayrı bir çizgi olarak çiziyorsa bu yöntem faydalı olabilir. Her yıl için ayrı bir çizgi çizmek istiyorsanız ve "year", orijinal tablodaki sütunlardan biriyse gerekli veri dönüşümünü yapmak için bir pivot işlemi kullanmak iyi bir seçenektir.
Not: pivot
ifadesi kullanıyorsanız select
yan tümcesinde listelenen her sütunun group by
ifadesinde listelenmesi veya bir toplama işlevi tarafından sarmalanması gerekir.
Birden fazla satır pivot sütunlar için aynı değerleri içerebileceği için özet, toplama anlamına gelir. pivot
, group by
olmadan kullanıldığında sonuç tablosunun tam olarak bir satır içereceğini unutmayın.
Örneğin, örnek tabloda aşağıdaki sorguyu çalıştırarak:
select sum(salary) pivot dept
Aşağıdaki yanıtı döndürür:
Eng toplam-maaş | Pazarlama toplam maaş | Satış toplam maaş |
---|---|---|
2100 | 800 | 750 |
Bunun nedeni 2100'ün, Mühendislik departmanı için 800, Pazarlama departmanı için 800 vb. maaşların toplamı olmasıdır.
pivot
ile group by
birlikte kullanılması daha da faydalı olabilir. Çünkü her hücrenin ilgili satır ve ilgili sütun için toplama işleminin sonucunu içeren bir tablo oluşturulur. Örneğin, örnek tabloda aşağıdaki sorguyu çalıştırdığınızda:
select dept, sum(salary) group by dept pivot lunchTime
Aşağıdaki yanıtı döndürür:
departman | 12:00:00 toplam maaş | 13:00:00 toplam maaş |
---|---|---|
Eng | 1.500 | 600 |
Marketing | null | 800 |
Satış | 750 | null |
Ayrıca, pivot
sütunları ile group by
sütunları arasında geçiş yaparak sütunlar ile satırlar arasında geçiş yaparak bu tabloyu "ters çevirebilirsiniz". Örnek tabloda aşağıdaki sorguyu çalıştırma:
select lunchTime, sum(salary) group by lunchTime pivot dept
Aşağıdaki yanıtı döndürür:
lunchTime | Eng toplam-maaş | Pazarlama toplam maaş | Satış toplam maaş |
---|---|---|---|
12:00:00 | 1.500 | null | 750 |
13:00:00 | 600 | 800 | null |
Ayrıca pivot
ifadesinde birden fazla sütun 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, örnek tabloda aşağıdaki sorguyu çalıştırarak:
select sum(salary) pivot dept, lunchTime
Aşağıdaki yanıtı döndürür:
Mühendis,12:00:00 toplam-maaş | Mühendis,13:00:00 toplam-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 kombinasyonların sütun içerdiğini unutmayın. Bu nedenle Pazarlama 12:00:00 veya Satış için sütun yoktur.
Birden fazla toplama da kullanabilirsiniz. Örneğin, örnek tabloda aşağıdaki sorguyu çalıştırarak:
select sum(salary), max(lunchTime) pivot dept
Aşağıdaki yanıtı döndürür:
Eng toplam-maaş | Pazarlama toplam maaş | Satış toplam maaş | Eng max-lunchTime | Pazarlama max-lunchTime | Satış max-lunchTime |
---|---|---|---|---|---|
2100 | 800 | 750 | 13:00:00 | 13:00:00 | 12:00:00 |
select
ifadesinde birden çok toplama, group by
ifadesinde birden fazla sütun ve pivot
ifadesinde birden fazla sütunu birleştirebilirsiniz. Dahili olarak toplama işlemi, gruplandırma ölçütü ve pivot ifadelerindeki sütunların 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
ifadesi herhangi bir toplama sütunu içeremez. Bunun nedeni, select
yan tümcesinde belirtilen her toplama için sonuç tablosunda birçok sütun oluşturulmasıdır. Ancak pivot
kullanıldığında toplama sütunlarını biçimlendirebilirsiniz. Böyle bir biçimin sonucunda, pivot işlemi tarafından oluşturulan belirli toplamayla alakalı tüm yeni sütunlar belirtilen kalıba göre biçimlendirilir. Yukarıdaki örnekte format sum(salary) "some_format_string"
eklenmesi şu sütunları etkiler: Eng toplam maaş, Pazarlama toplam maaşı ve Satış toplam maaşı.
Toplama sütunlarını etiketleyebilirsiniz. label
yan tümcesinde herhangi bir etiket belirtilmezse özetleme sonucunda üretilen bir sütunun etiketi, pivot sütunlardaki değer listesinden, toplama türünden (min., maks., toplam, ...) ve birleştirilmiş sütunun etiketinden oluşur.
Örneğin, "Eng,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 pivot sütunlarda yalnızca değer listesi tutulur. Örneğin, "Eng,12:00:00". label
ifadesi bir toplama sütunu için bir etiket belirttiğinde istenen etiket, hem select
ifadesinde yalnızca bir toplama olduğunda hem de birden fazla toplama olduğunda değer listesine eklenir. Örneğin label sum(salary) "sumsal"
, "Eng,12:00:00 özet", "Eng,13:00:00 özet" vb. sütun etiketleriyle sonuçlanır.
Sıralama Ölçütü
order by
ifadesi, satırları belirtilen sütunlardaki değerlere göre sıralamak için kullanılır.
order by
yan tümcesindeki öğeler, sütun tanımlayıcıları veya toplama işlevlerinin, skaler işlevlerin ya da operatörlerin çıktısı olabilir.
Örnekler:
order by dept, salary desc
select dept, max(salary) group by dept order by max(salary)
Sınır
limit
ifadesi, döndürülen satır sayısını sınırlamak için kullanılır.
Örnek:
limit 100
Belirli uzaklıkta kopyasını oluştur
offset
ifadesi, belirli sayıda ilk satırı atlamak için kullanılır.
limit
ifadesi 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
ifadesi, 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
yan tümcesindeki öğeler, sütun tanımlayıcıları veya toplama işlevlerinin, skaler işlevlerin ya da operatörlerin çıktısı 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
- Söz konusu sütuna atanacak etiket. Birçok görselleştirme, son kullanıcıya gösterilecek metin olarak sütun etiketini kullanır (ör. pasta grafikte gösterge etiketi). Etiketler, dize değişmez değerleridir ve bu söz dizimi kurallarına uyar.
Ö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 ayarlanmaktadır:
label dept 'Department', name "Employee Name", location 'Employee Location'
Biçim
format
ifadesi, bir veya daha fazla sütundaki hücrelere biçimlendirilmiş değer belirtmek için 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, gösterim için biçimlendirilmiş değer kullanılır. Bu yan tümcede belirttiğiniz kalıplar genellikle karşılık gelen sütunların pattern ö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
- Kalıp, "doğruysa-değer:yanlışsa-değeri" biçiminde bir
string
şeklindedir.
Örnek:
format salary '#,##0.00', hireDate 'dd-MMM-yyyy', isSenior 'Yes!:Not yet'
Seçenekler
options
ifadesi, sorgu yürütmeyle ilgili ek seçenekleri kontrol etmek için kullanılır. options
deyimine uygun olabilecek anahtar kelimeler şunlardır:
-
no_format
Biçimlendirilmiş değerleri sonuçtan kaldırır ve yalnızca temel değerleri bırakır. İlgili görselleştirme, yanıtın boyutunu küçültmek için biçimlendirilmiş değerleri kullanmadığında kullanılabilir. -
no_values
Sonuçtan temel değerleri kaldırır ve yalnızca biçimlendirilmiş değerleri bırakır. Belirli görselleştirmede, yanıtın boyutunu küçültmek için yalnızca biçimlendirilmiş değerler kullanıldığında kullanılabilir.
Veri Manipülasyon İşlevleri
Tek bir sütundaki verileri işlemenize veya birleştirmenize ya da sütunlardaki verileri karşılaştırmanıza veya birleştirmenize olanak tanıyan çeşitli operatör ve işlev türleri vardır. Örnekler, sum() (bir sütundaki tüm değerleri eklemek için), maks (bir sütundaki en büyük değeri bulmak için) ve + (aynı satırdaki iki sütunun değerlerini toplamak için).
Bazı işlevler herhangi bir yan tümcede görünebilir, bazıları ise bir yan tümce alt kümesinde görünebilir. Bu konu aşağıda açıklanmıştır.
Örnek:
Bu tablo göz önünde bulundurulduğunda... | Bu sorguyu uygularsak... | Şu sonucu alırız. | ||||||||||||||||||||||||
|
select upper(name), year(startDate) |
|
Aşağıdaki veri manipülasyon işlevleri, Google Görselleştirme API'si sorgu dili tarafından tanımlanmıştır:
Toplama İşlevleri
Toplama işlevlerine tek sütunlu bir tanımlayıcı iletilir ve her gruptaki tüm değerlerde (gruplar group by
veya pivot
ifadeleriyle veya bu ifadeler kullanılmıyorsa tüm satırlar ile belirtilir) bir işlem gerçekleştirir.
Ö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
, format
yan tümcelerinde kullanılabilir.
where
, group by
, pivot
, limit
, offset
veya options
ifadelerinde görünemez .
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ütundaki öğe sayısını döndürür. Boş hücreler sayılmaz. | Tüm türler | number |
max() |
Bir gruba ait sütunda maksimum değeri döndürür. Tarihler, daha önceki tarihlerin daha küçük olmasıyla karşılaştırılır. string değerleri, büyük/küçük harfe duyarlılık açısından alfabetik olarak 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 önceki tarihlerin daha küçük olmasıyla karşılaştırılır, string değerleri büyük/küçük harfe duyarlılık açısından alfabetik olarak karşılaştırılır |
Tüm türler | Sütunla aynı türde |
sum() |
Bir gruba ait sütundaki tüm değerlerin toplamını döndürür. | number |
number |
Not: Toplama işlevleri, bağımsız değişken olarak yalnızca sütun tanımlayıcısı 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.
Scaler İşlevler
Skaler işlevler, başka bir değer üretmek için sıfır veya daha fazla parametre üzerinden çalışır. Skaler işlevler, uygun türdeki parametreyi değerlendiren herhangi bir ifade geçirilebilir. Bu türlerin, bu belgenin Basit değerler bölümünde tanımlanan türler olduğuna dikkat edin. Bunlar, benzer şekilde adlandırılmış JavaScript nesnelerinden biraz farklı olabilir.
Sütun adının, skaler bir işlevle sarmalanarak değiştirileceğini unutmayın.
Skaler işlevler, tek bir değeri elde eden her şeyi parametre olarak alabilir:
year(max(startDate)) datediff(now(), todate(1234567890000))
Skaler işlevler şu yan tümcelerin herhangi birinde kullanılabilir: select
, where
, group by
, pivot
, order by
, label,
ve
format
.
Ad | |
---|---|
year() |
Bir tarih veya tarih/saat değerinden 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ğerinden sıfır tabanlı 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() |
Tarih/saat 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 diliminde geçerli Parametreler: Yok
İade Türü:
datetime |
dateDiff() |
İki Parametreler:
date veya datetime türünde iki parametre (her birinden biri olabilir)İade Türü:
number |
toDate() |
Verilen değeri bir
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örler
Tek bir sayıya (yani uygun toplama fonksiyonlarının, operatörlerin veya sabitlerin çıktısı) sonuç veren her şey üzerinde matematik işlemleri yapmak için aritmetik operatörleri kullanabilirsiniz.
Örnekler:
select empSalary - empTax select 2 * (max(empSalary) / max(empTax))
Aşağıdaki operatörler tanımlanmıştı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 'nin çarpımını döndürür. |
İki number |
number |
/ |
İki number işleminin bölümünü döndürür. Sıfıra bölme işlemi boş sonucunu döndürür. |
İki number |
number |
Dil Öğeleri
Harf değerleri
Değişmez değerler, karşılaştırmalar veya atamalar 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. Sorgu söz diziminde kullanılan değişmez değer örneklerinden bazıları şunlardır:
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 değer türünün biçimleri aşağıda verilmiştir:
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 düz değerler ondalık gösterimle belirtilir.
Örnekler:
3 3.0 3.14 -71 -7.2 .6
-
boolean
- Boole düz değerleri
true
veyafalse
şeklindedir. -
date
date
anahtar kelimesini ve ardındanyyyy-MM-dd
biçiminde birstring
değişmez değeri kullanın. Örnek:date "2008-03-18"
.-
timeofday
timeofday
anahtar kelimesini ve ardındanHH:mm:ss[.SSS]
biçiminde birstring
değişmez değeri kullanın Örnek:timeofday "12:30:45"
.-
datetime
datetime
anahtar kelimesi veyatimestamp
anahtar kelimesi, ardındanyyyy-MM-dd HH:mm:ss[.sss]
biçimindestring
değişmez değeri kullanılarak 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 metin string
'larıdır.
Önemli: Tanımlayıcınız
- Boşluk içeriyor,
- Ayrılmış bir kelimedir,
- Alfanümerik karakter veya alt çizgi dışında herhangi bir şey içeren ([a-zA-Z0-9_]) veya
- Bir rakamla başlar
arka tırnak işareti (tek tırnak değil) içine alınmalıdır.
Aksi takdirde tanımlayıcınızın tırnak içine alınmasına gerek yoktur. (Söz dizimi tarafından tanımlanan tüm anahtar kelimelerin ayrılmış kelimeler olmadığını unutmayın. Bu nedenle, örneğin, başına bir tırnak işareti koymak zorunda kalmadan tanımlayıcı olarak "max" kullanabilirsiniz.)
Örnekler: col1 employee_table `start
date` `7 days traffic` `select`
Geri tırnak işaretlerinin kullanılmasını gerektiren veya yanlışlıkla "geri tırnak işaretleri" yerine yanlışlıkla "tek tırnak" kullanılabileceği için geri tırnak gerektiren bir tanımlayıcı seçmeniz önerilmez. Bunlar yaygın hatalardır ve genellikle hatalarının giderilmesi 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 dil öğelerinin hiçbiri büyük/küçük harfe duyarlı değildir.
Ayrılmış Kelimeler
Aşağıdaki ayrılmış kelimeler, tanımlayıcı olarak kullanılıyorsa tekrar 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