Google Visualization API Query Language memungkinkan Anda melakukan berbagai manipulasi data dengan kueri ke sumber data.
Daftar Isi
Pengantar
Biasanya, visualisasi mengharapkan data dalam beberapa bentuk tertentu. Misalnya, diagram pai mengharapkan data berupa dua kolom: label teks dan nilai numerik. Data dalam sumber data mungkin tidak sama persis dengan struktur ini. Misalnya, sumber data mungkin memiliki lebih dari dua kolom, atau urutan kolom mungkin tidak cocok dengan urutan yang diharapkan oleh diagram lingkaran.
Bahasa kueri menyediakan kemampuan untuk mengirim permintaan manipulasi dan pemformatan data ke sumber data, serta memastikan struktur dan konten data yang ditampilkan cocok dengan struktur yang diharapkan.
{i>Syntax<i} bahasa kueri mirip dengan SQL. Developer yang terbiasa dengan SQL harus dapat dengan cepat mempelajari dan menggunakan bahasa kueri ini. Ada banyak tutorial SQL yang tersedia di Web. Ada beberapa perbedaan antara bahasa kueri ini dan SQL yang dijelaskan di bagian syntax.
Perhatikan bahwa sumber data tidak diperlukan untuk mengimplementasikan bahasa kueri, atau jika memerlukannya, untuk mengimplementasikan semua fitur bahasa tersebut. Kecuali Anda memiliki alasan untuk meyakini sebaliknya, Anda tidak boleh bergantung pada sumber data untuk menerapkan semua fitur bahasa ini.
Menggunakan Bahasa Kueri
Anda dapat melampirkan string kueri ke permintaan sumber data melalui dua cara: dengan menetapkan string kueri dari dalam kode JavaScript, atau dengan menetapkan string kueri sebagai parameter dalam URL sumber data. Jika permintaan Anda tidak menyertakan string kueri, perilaku default untuk sumber data adalah menampilkan semua baris dan kolom menggunakan urutan dan pemformatan baris/kolom default. Anda dapat mengubahnya dengan menyertakan string kueri dalam permintaan Anda ke sumber data.
Menetapkan Kueri dari JavaScript
Untuk menetapkan string kueri dari dalam kode JavaScript, panggil metode setQuery
class
google.visualization.Query
.
var query = new google.visualization.Query(DATA_SOURCE_URL); query.setQuery('select dept, sum(salary) group by dept'); query.send(handleQueryResponse);
Menetapkan Kueri di URL Sumber Data
String kueri dapat ditambahkan ke URL sumber data menggunakan parameter tq
.
Menetapkan kueri di parameter URL, bukan di JavaScript, memungkinkan Anda dengan mudah menggunakan visualisasi yang ditulis oleh developer lain, dan tetap dapat menyesuaikan kueri.
String kueri harus dienkode dengan benar sebagai parameter URL.
Anda dapat mengenkode URL menggunakan fungsi encodeURIComponent
JavaScript, atau mengenkodenya secara manual, menggunakan alat encoding di akhir bagian ini.
Contoh:
Pertimbangkan string kueri berikut untuk Google Spreadsheet. (Perhatikan bahwa ID kolom dalam spreadsheet selalu berupa huruf; teks judul kolom yang ditampilkan di spreadsheet yang dipublikasikan adalah label, bukan ID. Anda harus menggunakan ID, bukan label, dalam string kueri Anda.)
select A, sum(B) group by A
Jika dienkode, kueri ini menjadi:
select%20A%2C%20sum(B)%20group%20by%20A
Asumsikan bahwa ini adalah URL {i>spreadsheet <i}Anda:
https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4
Tambahkan /gviz/tq?tq=
YOUR_QUERY_STRING ke URL spreadsheet untuk mendapatkan string kueri akhir Anda:
https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4/gviz/tq?tq=select%A%2C%20sum(B)%20group%20by%20A
Gunakan alat di bawah ini untuk mengenkode atau mendekode string kueri:
Catatan: Untuk mengakses data spreadsheet pribadi, Anda harus meneruskan kredensial otorisasi eksplisit menggunakan OAuth. Lihat bagian Google Spreadsheets: Otorisasi untuk detail selengkapnya.
Sintaksis Bahasa
Ringkasan
Sintaksis Bahasa Kueri Google Visualization API dirancang agar serupa dengan sintaksis SQL. Namun, ini adalah subset dari SQL, dengan beberapa fiturnya sendiri yang perlu Anda pelajari. Jika Anda sudah terbiasa dengan SQL, seharusnya tidak terlalu sulit untuk dipelajari.
Tabel Data
Dokumen ini menggunakan istilah tabel data untuk merujuk pada kumpulan hasil kueri. Sebuah tabel data terdiri dari baris dan kolom. Setiap kolom dalam tabel data memiliki properti berikut:
- ID (atau ID kolom). Digunakan untuk mereferensikan kolom dalam kueri. Perhatikan bahwa Anda tidak boleh mencoba mereferensikan kolom berdasarkan label dalam kueri, hanya dengan ID. Tips: Cobalah untuk tidak menggunakan ID yang menyertakan spasi; spasi sulit dikelola dan dapat menyebabkan Anda membuat kesalahan kecil, tetapi sulit ditemukan, dalam coding. Selain itu, ID yang menyertakan spasi harus diapit oleh tanda petik terbalik.
- Label.
string
yang biasanya ditampilkan kepada pengguna akhir. Misalnya sebagai legenda dalam bagan pai, atau {i>header <i}kolom dalam tabel. - Jenis data. Jenis data yang didukung adalah
string
,number
,boolean
,date
,datetime
, dantimeofday
. Semua nilai kolom akan memiliki jenis data yang cocok dengan jenis kolom, atau nilainull
. Jenis ini mirip, tetapi tidak sama, dengan jenis JavaScript. yang dijelaskan di bagian Literal pada halaman ini. - Pola pemformatan. Sumber data dapat menentukan pola pemformatan untuk sebagian atau semua kolomnya. Anda dapat mengganti pola ini dengan menyertakan klausa format.
Tabel yang digunakan dalam semua contoh:
Sepanjang bagian ini, semua contoh kueri mengacu pada tabel berikut. Header kolom adalah ID kolom.
namastring |
departemenstring |
lunchTimetimeofday |
Gaji number |
hireDatedate |
usianumber |
isSeniorboolean |
seniorityStartTimedatetime |
---|---|---|---|---|---|---|---|
John | Eng | 12:00:00 | 1.000 | 2005-03-19 | 35 | true | 02-12-2007 15:56:00 |
Daffa | Eng | 12:00:00 | 500 | 2006-04-19 | 27 | false | null |
Santi | Eng | 13:00:00 | 600 | 2005-10-10 | 30 | false | null |
Beni | Penjualan | 12:00:00 | 400 | 2002-10-10 | 32 | true | 09-03-2005 12:30:00 |
Dana | Penjualan | 12:00:00 | 350 | 2004-09-08 | 25 | false | null |
Miko | Pemasaran | 13:00:00 | 800 | 2005-01-10 | 24 | true | 30-12-2007 14:40:00 |
Klausul Bahasa
{i>Syntax<i} bahasa kueri terdiri dari klausa-klausa berikut. Setiap klausa dimulai dengan satu atau dua kata kunci. Semua klausa bersifat opsional. Klausul dipisahkan oleh spasi. Urutan klausul harus sebagai berikut:
Klausul | Penggunaan |
---|---|
select |
Memilih kolom yang akan ditampilkan, dan urutannya. Jika dihilangkan, semua kolom tabel akan ditampilkan, dalam urutan defaultnya. |
where |
Hanya menampilkan baris yang cocok dengan kondisi. Jika dihilangkan, semua baris akan ditampilkan. |
group by |
Menggabungkan nilai di seluruh baris. |
pivot |
Mengubah nilai yang berbeda dalam kolom menjadi kolom baru. |
order by |
Mengurutkan baris menurut nilai dalam kolom. |
limit |
Membatasi jumlah baris yang ditampilkan. |
offset |
Melewati sejumlah baris pertama tertentu. |
label |
Menetapkan label kolom. |
format |
Memformat nilai dalam kolom tertentu menggunakan pola pemformatan yang diberikan. |
options |
Menetapkan opsi tambahan. |
from |
Klausa from telah dihapus
dari bahasa. |
Pilih
Klausa select
digunakan untuk menentukan kolom yang akan ditampilkan dan
urutannya.
Jika klausa ini tidak ditentukan, atau jika select *
digunakan,
semua kolom tabel sumber data akan ditampilkan, dalam urutan aslinya.
Kolom dirujuk oleh ID (bukan oleh label). Misalnya, di Google Spreadsheet, ID kolom adalah huruf kolom satu atau dua karakter (A, B, C, ...).
Item dalam klausa select
dapat berupa ID kolom, atau output
fungsi
agregasi, fungsi skalar, atau operator.
Contoh:
select *
select dept, salary
select max(salary)
Pada contoh berikut, tanda kutip terbalik digunakan untuk mereferensikan ID kolom yang berisi spasi (alamat email) atau yang merupakan kata yang dicadangkan (tanggal):
select `email address`, name, `date`
Menjalankan kueri berikut pada contoh tabel:
select lunchTime, name
Menampilkan respons berikut:
lunchTime | name |
---|---|
12:00:00 | John |
12:00:00 | Daffa |
13:00:00 | Santi |
12:00:00 | Beni |
12:00:00 | Dana |
13:00:00 | Miko |
Lokasi
Klausa where
digunakan untuk hanya menampilkan baris yang cocok dengan
kondisi tertentu.
Operator perbandingan sederhana adalah <=, <, >, >=, =,
!=, <>
. Kedua operator perbandingan != <>
berarti tidak sama. String dibandingkan dengan nilai leksikografis. Perhatikan bahwa kesetaraan ditunjukkan oleh =
, bukan ==
seperti di sebagian besar bahasa komputer.
Membandingkan dengan null
dilakukan menggunakan is null
atau is not null
.
Anda dapat menggabungkan beberapa kondisi menggunakan operator logika and
, or
,
dan not
. Tanda kurung dapat digunakan untuk menentukan prioritas eksplisit.
Klausa {i>where<i} juga mendukung beberapa operator perbandingan {i>string<i} yang lebih kompleks.
Operator ini mengambil dua string sebagai argumen; argumen non-string apa pun (misalnya
tanggal atau angka) akan dikonversi menjadi string sebelum
dibandingkan. Pencocokan string peka huruf besar/kecil (Anda dapat menggunakan fungsi skalar upper()
atau lower()
untuk mengatasinya).
contains
- Kecocokan substring. keseluruhancontains
bagian bernilai benar jika bagian berada di mana saja dalam seluruh. Contoh:where name contains 'John'
cocok dengan 'John', 'John Adams', 'Long John Silver', tetapi bukan 'john adams'.starts with
- Pencocokan awalan. valuestarts with
awalan bernilai benar jika awalan berada di awal value. Contoh:where dept starts with 'engineering'
cocok dengan 'engineering' dan 'engineering manager'.where dept starts with 'e'
cocok dengan 'engineering', 'eng', dan 'e'.ends with
- Pencocokan akhiran. valueends with
akhiran bernilai true jika suffix berada di akhir value. Contoh:where role ends with 'y'
cocok dengan 'cowboy', 'boy', dan 'y'.matches
- Pencocokan ekspresi reguler (preg). haystackmatches
needle bernilai benar jika ekspresi reguler di needle cocok dengan haystack. Contoh:where country matches '.*ia'
cocok dengan India dan Nigeria, tetapi tidak dengan Indiana. Perlu diketahui bahwa ini bukan penelusuran global, sehinggawhere country matches 'an'
tidak akan cocok dengan 'Kanada'.like
- Penelusuran teks yang mendukung dua karakter pengganti: %, yang mencocokkan nol atau beberapa karakter dari jenis apa pun, dan _ (garis bawah), yang cocok dengan satu karakter apa pun. Hal ini mirip dengan operator SQL LIKE. Contoh:where name like fre%
cocok dengan 'fre', 'fred', dan 'freddy'.
Contoh:
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
Menjalankan kueri berikut pada contoh tabel:
select name where salary > 700
Menampilkan respons berikut:
name |
---|
John |
Miko |
Kelompokkan Menurut
Klausa group by
digunakan untuk menggabungkan nilai di seluruh baris.
Satu baris dibuat untuk setiap kombinasi nilai yang berbeda dalam
klausa kelompokkan menurut.
Data diurutkan secara otomatis berdasarkan kolom
pengelompokan, kecuali jika ditentukan lain oleh klausa order by
.
Catatan: Jika Anda menggunakan klausa group by
, setiap
kolom yang tercantum dalam klausa select
harus dicantumkan dalam klausa group by
,
atau digabungkan oleh fungsi agregasi.
Contoh:
select dept, max(salary) group by dept
Menjalankan kueri berikut pada contoh tabel:
select lunchTime, avg(salary), count(age) group by isSenior,lunchTime
Menampilkan respons berikut:
lunchTime | gaji rata-rata | jumlah usia |
---|---|---|
12:00:00 | 425 | 2 |
13:00:00 | 600 | 1 |
12:00:00 | 700 | 2 |
13:00:00 | 800 | 1 |
Pivot
Klausa pivot
digunakan untuk mengubah nilai yang berbeda dalam kolom menjadi kolom baru. Misalnya, melakukan pivot berdasarkan kolom 'year' akan menghasilkan
tabel dengan kolom untuk setiap tahun yang berbeda, yang muncul di tabel asli.
Tindakan ini dapat berguna, misalnya, jika visualisasi diagram garis menggambar setiap kolom sebagai garis terpisah. Jika Anda ingin menggambar garis terpisah untuk setiap tahun, dan 'year' adalah salah satu kolom tabel asli, maka pilihan yang baik adalah menggunakan operasi pivot untuk melakukan transformasi data yang diperlukan.
Catatan: Jika Anda menggunakan klausa pivot
,
setiap kolom yang tercantum dalam klausa select
harus
dicantumkan dalam klausa group by
, atau digabungkan oleh fungsi
agregasi
Karena beberapa baris dapat berisi nilai yang sama untuk kolom pivot,
pivot menyiratkan agregasi. Perhatikan bahwa saat menggunakan pivot
tanpa menggunakan group by
, tabel hasil akan berisi tepat satu baris.
Misalnya, menjalankan kueri berikut pada contoh tabel:
select sum(salary) pivot dept
Menampilkan respons berikut:
Jumlah gaji bahasa Inggris | Jumlah gaji pemasaran | Jumlah gaji penjualan |
---|---|---|
2100 | 800 | 750 |
Ini karena 2100 adalah jumlah gaji untuk departemen Eng, 800 untuk departemen Pemasaran, dsb.
Menggunakan pivot
bersama dengan group by
dapat
lebih berguna, karena akan membuat tabel dengan setiap sel berisi hasil
agregasi untuk baris yang relevan dan kolom yang relevan. Misalnya,
jalankan kueri berikut pada
contoh tabel:
select dept, sum(salary) group by dept pivot lunchTime
Menampilkan respons berikut:
departemen | 12:00:00 jumlah gaji | 13:00:00 jumlah gaji |
---|---|---|
Eng | 1500 | 600 |
Pemasaran | null | 800 |
Penjualan | 750 | null |
Anda juga dapat "membalikkan" tabel ini, mengalihkan kolom dan baris, dengan beralih
antara kolom pivot
dan kolom
group by
. Jalankan kueri berikut pada contoh tabel:
select lunchTime, sum(salary) group by lunchTime pivot dept
Menampilkan respons berikut:
lunchTime | Jumlah gaji bahasa Inggris | Jumlah gaji pemasaran | Jumlah gaji penjualan |
---|---|---|---|
12:00:00 | 1500 | null | 750 |
13:00:00 | 600 | 800 | null |
Anda juga dapat menggunakan lebih dari satu kolom dalam klausa pivot
. Dalam kasus semacam ini, kolom tabel respons terdiri dari semua kombinasi nilai unik dalam kolom yang ada di tabel asli. Misalnya, jalankan kueri berikut pada
contoh tabel:
select sum(salary) pivot dept, lunchTime
Menampilkan respons berikut:
Eng,12:00:00 jumlah gaji | Eng,13:00:00 jumlah gaji | Pemasaran,13:00:00 jumlah gaji | Penjualan,jumlah gaji 12:00:00 |
---|---|---|---|
1500 | 600 | 800 | 750 |
Perhatikan bahwa hanya kombinasi yang muncul dalam tabel asli yang akan diberi kolom dalam tabel respons. Itulah sebabnya tidak ada kolom untuk Marketing,12:00:00 atau untuk Sales,13:00:00.
Anda juga dapat menggunakan lebih dari satu agregasi. Misalnya, menjalankan kueri berikut pada contoh tabel:
select sum(salary), max(lunchTime) pivot dept
Menampilkan respons berikut:
Jumlah gaji bahasa Inggris | Jumlah gaji pemasaran | Jumlah gaji penjualan | max-lunchTime bahasa Inggris | Max-lunchTime pemasaran | Penjualan max-lunchTime |
---|---|---|---|---|---|
2100 | 800 | 750 | 13:00:00 | 13:00:00 | 12:00:00 |
Anda dapat menggabungkan beberapa agregasi dalam klausa select
, beberapa kolom dalam klausa group by
, dan beberapa kolom dalam klausa pivot
. Secara internal, agregasi dilakukan oleh
penyambungan kolom dalam klausa group by dan pivot.
Kolom yang ditentukan dalam klausa pivot
mungkin tidak muncul dalam klausa
select
, group by
, atau order by
.
Jika pivot
digunakan, klausa order by
tidak boleh
berisi kolom agregasi. Alasannya adalah karena setiap
agregasi yang ditentukan dalam klausa select
, banyak kolom
yang akan dihasilkan dalam tabel hasil. Namun, Anda dapat memformat kolom
agregasi jika pivot
digunakan. Hasil dari format seperti itu adalah
semua kolom baru yang relevan dengan agregasi tertentu, yang
dihasilkan oleh operasi pivot, diformat menurut pola yang ditentukan. Pada
contoh di atas, menambahkan format sum(salary) "some_format_string"
akan memengaruhi kolom berikut: Eng sum-salary, Marketing sum-salary, dan
Sales sum-salary.
Anda dapat memberi label pada kolom agregasi. Jika tidak ada label yang ditentukan dalam
klausa label
, label kolom yang dihasilkan sebagai hasil
pivot akan terdiri dari daftar nilai dalam kolom pivot,
jenis agregasi (min, maks, sum, ...), dan label kolom yang diagregasi.
Misalnya "Eng,12:00:00 sum Gaji". Jika hanya satu agregasi yang ditentukan dalam klausa select
, bagian agregasi akan dihapus dari label, dan hanya daftar nilai dalam kolom pivot yang akan disimpan. Misalnya "Eng,12:00:00". Jika klausa label
menentukan label untuk
kolom agregasi, maka label yang diminta akan ditambahkan ke daftar
nilai, baik saat hanya ada satu agregasi dalam klausa select
, maupun saat ada lebih dari satu. Misalnya, label sum(salary) "sumsal"
akan menghasilkan label kolom "Eng,12:00:00 sumsal", "Eng,13:00:00 sumsal", dll.
Pesan Menurut
Klausa order by
digunakan untuk mengurutkan baris menurut nilai
dalam kolom yang ditentukan.
Item dalam klausa order by
dapat berupa ID kolom, atau output
fungsi
agregasi, fungsi skalar, atau operator.
Contoh:
order by dept, salary desc
select dept, max(salary) group by dept order by max(salary)
Batas
Klausa limit
digunakan untuk membatasi jumlah baris yang ditampilkan.
Contoh:
limit 100
Offset
Klausa offset
digunakan untuk melewati sejumlah baris pertama tertentu.
Jika klausa limit
digunakan, offset
akan diterapkan terlebih dahulu: misalnya, limit 15 offset
30
menampilkan
baris 31 sampai 45.
Contoh:
offset 10 limit 30 offset 210
Label
Klausa label
digunakan untuk menetapkan label pada satu atau beberapa kolom.
Perhatikan bahwa Anda tidak dapat menggunakan nilai label sebagai pengganti ID dalam kueri.
Item dalam klausa label
dapat berupa ID kolom, atau output
fungsi agregasi, fungsi
skalar, atau operator.
Sintaksis:
label column_id label_string [,column_id label_string]
column_id
- ID kolom yang diberi label.
label_string
- Label yang akan ditetapkan ke kolom tersebut. Banyak visualisasi menggunakan label kolom sebagai teks untuk ditampilkan kepada pengguna akhir, seperti label legenda dalam diagram lingkaran. Label adalah literal string, dan ikuti aturan sintaksis tersebut.
Contoh:
Contoh berikut menetapkan label untuk kolom dept ke "Departemen", label untuk kolom nama ke "Nama Karyawan", dan label untuk kolom lokasi ke "Lokasi Karyawan":
label dept 'Department', name "Employee Name", location 'Employee Location'
Format
Klausa format
digunakan untuk menentukan nilai terformat untuk sel dalam
satu atau beberapa kolom. Data yang ditampilkan harus berisi nilai sebenarnya dan
nilai berformat untuk setiap sel dalam kolom yang diformat. Banyak visualisasi menggunakan
nilai yang tidak terformat untuk penghitungan, tetapi menggunakan nilai terformat untuk ditampilkan. Pola yang Anda tentukan dalam klausa ini biasanya ditampilkan dalam properti pattern di kolom terkait.
Sintaksis Pola:
number
,date
,timeofday
,datetime
- Pola tanggal dan angka yang ditentukan oleh ICU.
-
boolean
- Pola berupa
string
dalam format 'value-if-true:value-if-false'.
Contoh:
format salary '#,##0.00', hireDate 'dd-MMM-yyyy', isSenior 'Yes!:Not yet'
Opsi
Klausa options
digunakan untuk mengontrol opsi tambahan
untuk eksekusi kueri. Kemungkinan kata kunci yang dapat mengikuti klausa options
adalah:
-
no_format
Menghapus nilai terformat dari hasil, dan hanya membiarkan nilai pokoknya. Dapat digunakan saat visualisasi tertentu tidak menggunakan nilai terformat untuk mengurangi ukuran respons. -
no_values
Menghapus nilai dasar dari hasil, dan hanya membiarkan nilai yang diformat. Dapat digunakan saat visualisasi tertentu hanya menggunakan nilai yang diformat untuk mengurangi ukuran respons.
Fungsi Manipulasi Data
Ada beberapa jenis operator dan fungsi yang memungkinkan Anda memanipulasi atau menggabungkan data dalam satu kolom, atau membandingkan atau menggabungkan data di seluruh kolom. Contohnya mencakup sum() (untuk menambahkan semua nilai dalam kolom), max (untuk menemukan nilai terbesar di kolom), dan + (untuk menjumlahkan nilai dua kolom dalam baris yang sama).
Beberapa fungsi dapat muncul dalam klausa apa pun; beberapa fungsi dapat muncul dalam subset klausa. Hal ini didokumentasikan di bawah.
Contoh:
Dengan tabel ini... | Jika kita menerapkan kueri ini... | Kita mendapatkan hasil ini. | ||||||||||||||||||||||||
|
select upper(name), year(startDate) |
|
Fungsi manipulasi data berikut ditentukan oleh bahasa kueri Google Visualization API:
Fungsi Agregasi
Fungsi agregasi diteruskan satu ID kolom, dan melakukan tindakan pada semua nilai dalam setiap grup (grup ditentukan oleh klausa group by
atau pivot
, atau semua baris jika klausa tersebut tidak digunakan).
Contoh:
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.
Fungsi agregasi dapat digunakan dalam klausa select
, order by
, label
, format
.
Karakter ini tidak boleh muncul dalam klausa where
, group by
, pivot
,
limit
, offset
, atau options
.
Berikut adalah fungsi agregasi yang didukung:
Name | Deskripsi | Jenis Kolom yang Didukung | Jenis Nilai yang Ditampilkan |
---|---|---|---|
avg() |
Menampilkan nilai rata-rata dari semua nilai di kolom untuk grup. | number |
number |
count() |
Menampilkan jumlah elemen di kolom yang ditentukan untuk sebuah grup. Sel null tidak dihitung. | Jenis apa saja | number |
max() |
Menampilkan nilai maksimum di kolom untuk grup. Tanggal dibandingkan dengan
tanggal yang lebih kecil, string dibandingkan menurut abjad, dengan kepekaan huruf besar/kecil. |
Jenis apa saja | Jenis yang sama dengan kolom |
min() |
Menampilkan nilai minimum di kolom untuk grup. Tanggal dibandingkan dengan
tanggal yang lebih kecil, string dibandingkan menurut abjad, dengan kepekaan huruf besar/kecil |
Jenis apa saja | Jenis yang sama dengan kolom |
sum() |
Menampilkan jumlah semua nilai di kolom untuk grup. | number |
number |
Catatan: Fungsi agregasi hanya dapat mengambil ID kolom sebagai argumen:
max(startDate) // OK min(firstScore) + min(secondScore) // OK max(year(startDate)) // INVALID. max requires column ID sum(salary + perks) // INVALID. sum requires column ID.
Fungsi Skalar
Fungsi skalar beroperasi pada nol atau beberapa parameter untuk menghasilkan nilai lain. Fungsi skalar dapat meneruskan ekspresi apa pun yang dievaluasi ke parameter jenis yang sesuai. Perhatikan bahwa jenis ini adalah jenis yang ditentukan di bagian Literal dalam dokumen ini, yang mungkin sedikit berbeda dari objek JavaScript yang memiliki nama serupa.
Perhatikan bahwa nama kolom akan diubah dengan menggabungkannya dengan fungsi skalar.
Fungsi skalar dapat menggunakan apa pun sebagai parameter yang dievaluasi menjadi satu nilai:
year(max(startDate)) datediff(now(), todate(1234567890000))
Fungsi skalar dapat digunakan dalam salah satu klausa berikut: select
, where
, group by
, pivot
, order by
, label,
, dan
format
.
Name | |
---|---|
year() |
Menampilkan nilai tahun dari nilai tanggal atau datetime. Misalnya:
Parameter: Satu parameter jenis
date atau datetime Jenis Pengembalian:
number |
month() |
Menampilkan nilai bulan berbasis nol dari nilai tanggal atau datetime. Misalnya:
Parameter: Satu parameter jenis
date atau datetime Jenis Pengembalian:
number |
day() |
Menampilkan hari dalam sebulan dari nilai Parameter: Satu parameter jenis
date atau datetime Jenis Pengembalian:
number |
hour() |
Menampilkan nilai jam dari nilai datetime atau Parameter: Satu parameter jenis
datetime atau timeofday Jenis Pengembalian:
number |
minute() |
Menampilkan nilai menit dari nilai Parameter: Satu parameter jenis
datetime atau timeofday Jenis Pengembalian:
number |
second() |
Menampilkan nilai kedua dari nilai Parameter: Satu parameter jenis
datetime atau timeofday Jenis Pengembalian:
number |
millisecond() |
Menampilkan bagian milidetik dari nilai Parameter: Satu parameter jenis
datetime atau timeofday Jenis Pengembalian:
number |
quarter() |
Menampilkan kuartal dari nilai Parameter: Satu parameter jenis
date atau datetime Jenis Pengembalian:
number |
dayOfWeek() |
Menampilkan hari dari nilai Parameter: Satu parameter jenis
date atau datetime Jenis Pengembalian:
number |
now() |
Menampilkan nilai datetime yang mewakili Parameter: Tidak ada
Jenis Pengembalian:
datetime |
dateDiff() |
Menampilkan perbedaan hari antara dua nilai Parameter: Dua parameter dari jenis
date atau datetime (masing-masing dapat berupa salah satunya)Jenis Pengembalian:
number |
toDate() |
Mengubah nilai yang diberikan menjadi nilai
Parameter: Satu parameter dari jenis
date , datetime , atau number Jenis Pengembalian:
date |
upper() |
Menampilkan Parameter: Satu parameter jenis
string Jenis Pengembalian:
string |
lower() |
Menampilkan Parameter: Satu parameter jenis
string Jenis Pengembalian:
string |
Operator Aritmatika
Anda dapat menggunakan operator aritmatika untuk melakukan operasi matematis pada apa pun yang dievaluasi ke angka tunggal (yaitu, output dari fungsi agregat, operator, atau konstanta).
Contoh:
select empSalary - empTax select 2 * (max(empSalary) / max(empTax))
Operator berikut ditentukan:
Name | Deskripsi | Parameter | Jenis Nilai yang Ditampilkan |
---|---|---|---|
+ |
Menampilkan jumlah dua nilai number . |
Dua number |
number |
- |
Menampilkan perbedaan antara dua nilai number . |
Dua number |
number |
* |
Menampilkan produk dari dua number . |
Dua number |
number |
/ |
Menampilkan hasil bagi dua number . Pembagian dengan nol akan menghasilkan nilai nol. |
Dua number |
number |
Elemen Bahasa
Literal
Literal adalah nilai yang digunakan untuk perbandingan atau tugas. Literal dapat berupa string
, angka, nilai boolean, atau berbagai jenis tanggal/waktu. Berikut beberapa contoh literal yang digunakan dalam sintaksis kueri:
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
Berikut adalah format untuk setiap jenis literal:
string
Literal
string
harus diapit dalam tanda kutip tunggal atau ganda. Contoh:"fourteen" 'hello world' "It's raining"
.-
number
- Literal numerik ditentukan dalam notasi desimal.
Contoh:
3 3.0 3.14 -71 -7.2 .6
-
boolean
- Literal Boolean adalah
true
ataufalse
. -
date
- Gunakan kata kunci
date
diikuti dengan literalstring
dalam formatyyyy-MM-dd
. Contoh:date "2008-03-18"
. -
timeofday
- Gunakan kata kunci
timeofday
diikuti dengan literalstring
dalam formatHH:mm:ss[.SSS]
Contoh:timeofday "12:30:45"
. -
datetime
- Tanggal dan waktu, menggunakan kata kunci
datetime
atau kata kuncitimestamp
diikuti dengan literalstring
dalam formatyyyy-MM-dd HH:mm:ss[.sss]
. Contoh:datetime '2008-03-18 12:30:34.123'
ID
ID (atau ID) adalah string
teks yang mengidentifikasi kolom.
Penting: Jika ID Anda
- Memiliki ruang,
- Merupakan kata yang sudah dicadangkan,
- Berisi apa pun selain karakter alfanumerik atau garis bawah ([a-zA-Z0-9_]), atau
- Diawali dengan digit
tanda kutip tersebut harus diapit oleh tanda kutip terbalik (bukan tanda kutip tunggal).
Jika tidak, ID Anda tidak perlu diberi tanda kutip. (Perhatikan bahwa tidak semua kata kunci yang didefinisikan oleh sintaksis tersebut merupakan kata yang dicadangkan; jadi, misalnya, Anda dapat menggunakan "maks" sebagai ID, tanpa harus mengutip kembali.)
Contoh: col1 employee_table `start
date` `7 days traffic` `select`
Sebaiknya jangan memilih ID yang memerlukan tanda kutip kembali, karena dapat terjadi lupa penggunaan tanda kutip terbalik, atau tidak sengaja menggunakan 'tanda kutip tunggal', bukan `tanda kutip balik`. Ini merupakan kesalahan umum, dan sering kali sulit di-debug.
Sensitivitas Kasus
ID dan literal string peka huruf besar/kecil. Semua elemen bahasa lainnya tidak peka huruf besar/kecil.
Kata yang Dicadangkan
Kata yang sudah dicadangkan untuk sistem berikut harus dikutip kembali jika digunakan sebagai ID:
and asc by date datetime desc false format group label limit not offset options or order pivot select timeofday timestamp true where