Hub documentation
Lakukan operasi SQL
Lakukan operasi SQL
Melakukan operasi SQL dengan DuckDB membuka berbagai kemungkinan untuk melakukan kueri dataset secara efisien. Mari kita lihat beberapa contoh yang menunjukkan kekuatan fungsi DuckDB.
Untuk demonstrasi kami, kita akan menjelajahi dataset yang menarik. Dataset MMLU adalah tes multitugas yang berisi pertanyaan pilihan ganda yang mencakup berbagai domain pengetahuan.
Untuk pratinjau dataset, mari kita pilih sampel 3 baris:
FROM 'hf://datasets/cais/mmlu/all/test-*.parquet' USING SAMPLE 3;
ββββββββββββββββββββββββ¬βββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββ
β question β subject β choices β answer β
β varchar β varchar β varchar[] β int64 β
ββββββββββββββββββββββββΌβββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββ€
β The model of lightβ¦ β conceptual_physics β [wave model, particle model, Both of these, Neither of these] β 1 β
β A person who is loβ¦ β professional_psychβ¦ β [his/her life scripts., his/her own feelings, attitudes, and beliefs., the emotional reactions and behaviors of the people he/she is interacting with.β¦ β 1 β
β The thermic effectβ¦ β nutrition β [is substantially higher for carbohydrate than for protein, is accompanied by a slight decrease in body core temperature., is partly related to sympatβ¦ β 2 β
ββββββββββββββββββββββββ΄βββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββ
Perintah ini mengambil sampel acak 3 baris dari dataset untuk kita periksa.
Mari kita mulai dengan memeriksa skema dataset kita. Tabel berikut merangkum struktur dataset kita:
DESCRIBE FROM 'hf://datasets/cais/mmlu/all/test-*.parquet' USING SAMPLE 3;
βββββββββββββββ¬ββββββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ
β column_name β column_type β null β key β default β extra β
β varchar β varchar β varchar β varchar β varchar β varchar β
βββββββββββββββΌββββββββββββββΌββββββββββΌββββββββββΌββββββββββΌββββββββββ€
β question β VARCHAR β YES β β β β
β subject β VARCHAR β YES β β β β
β choices β VARCHAR[] β YES β β β β
β answer β BIGINT β YES β β β β
βββββββββββββββ΄ββββββββββββββ΄ββββββββββ΄ββββββββββ΄ββββββββββ΄ββββββββββ
Selanjutnya, mari kita analisis apakah ada catatan duplikat dalam dataset kita:
SELECT *,
COUNT(*) AS counts
FROM 'hf://datasets/cais/mmlu/all/test-*.parquet'
GROUP BY ALL
HAVING counts > 2;
ββββββββββββ¬ββββββββββ¬ββββββββββββ¬βββββββββ¬βββββββββ
β question β subject β choices β answer β counts β
β varchar β varchar β varchar[] β int64 β int64 β
ββββββββββββ΄ββββββββββ΄ββββββββββββ΄βββββββββ΄βββββββββ€
β 0 rows β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Untungnya, dataset kami tidak mengandung catatan duplikat.
Mari kita lihat proporsi pertanyaan berdasarkan subjek dalam representasi bar:
SELECT
subject,
COUNT(*) AS counts,
BAR(COUNT(*), 0, (SELECT COUNT(*) FROM 'hf://datasets/cais/mmlu/all/test-*.parquet')) AS percentage
FROM
'hf://datasets/cais/mmlu/all/test-*.parquet'
GROUP BY
subject
ORDER BY
counts DESC;
ββββββββββββββββββββββββββββββββ¬βββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β subject β counts β percentage β
β varchar β int64 β varchar β
ββββββββββββββββββββββββββββββββΌβββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β professional_law β 1534 β βββββββββ β
β moral_scenarios β 895 β βββββ β
β miscellaneous β 783 β βββββ β
β professional_psychology β 612 β ββββ β
β high_school_psychology β 545 β βββ β
β high_school_macroeconomics β 390 β βββ β
β elementary_mathematics β 378 β βββ β
β moral_disputes β 346 β ββ β
ββββββββββββββββββββββββββββββββ΄βββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 57 rows (8 shown) 3 columns β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Sekarang, mari kita siapkan subset dari dataset yang berisi pertanyaan terkait nutrisi dan buat pemetaan dari pertanyaan ke jawaban yang benar. Perhatikan bahwa kita memiliki kolom choices yang dapat digunakan untuk mendapatkan jawaban yang benar dengan menggunakan kolom answer sebagai indeks.
SELECT *
FROM 'hf://datasets/cais/mmlu/all/test-*.parquet'
WHERE subject = 'nutrition' LIMIT 3;
ββββββββββββββββββββββββ¬ββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββ
β question β subject β choices β answer β
β varchar β varchar β varchar[] β int64 β
ββββββββββββββββββββββββΌββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββ€
β Which foods tend tβ¦ β nutrition β [Meat, Confectionary, Fruits and vegetables, Potatoes] β 2 β
β In which one of thβ¦ β nutrition β [If the incidence rate of the disease falls., If survival time with the disease increases., If recovery of the disease is faster., If the population in which theβ¦ β 1 β
β Which of the folloβ¦ β nutrition β [The flavonoid class comprises flavonoids and isoflavonoids., The digestibility and bioavailability of isoflavones in soya food products are not changed by proceβ¦ β 0 β
ββββββββββββββββββββββββ΄ββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββ
SELECT question,
choices[answer] AS correct_answer
FROM 'hf://datasets/cais/mmlu/all/test-*.parquet'
WHERE subject = 'nutrition' LIMIT 3;
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β question β correct_answer β
β varchar β varchar β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Which foods tend to be consumed in lower quantities in Wales and Scotland (as of 2020)?\n β Confectionary β
β In which one of the following circumstances will the prevalence of a disease in the population increase, all else being constant?\n β If the incidence rate of the disease falls. β
β Which of the following statements is correct?\n β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
Untuk memastikan kebersihan data, mari kita hapus karakter newline di akhir pertanyaan dan saring jawaban yang kosong:
SELECT regexp_replace(question, '\n', '') AS question,
choices[answer] AS correct_answer
FROM 'hf://datasets/cais/mmlu/all/test-*.parquet'
WHERE subject = 'nutrition' AND LENGTH(correct_answer) > 0 LIMIT 3;
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β question β correct_answer β
β varchar β varchar β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Which foods tend to be consumed in lower quantities in Wales and Scotland (as of 2020)? β Confectionary β
β In which one of the following circumstances will the prevalence of a disease in the population increase, all else being constant? β If the incidence rate of the disease falls. β
β Which vitamin is a major lipid-soluble antioxidant in cell membranes? β Vitamin D β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
Terakhir, mari kita soroti beberapa fungsi DuckDB yang digunakan di bagian ini:
DESCRIBE, mengembalikan skema tabel.USING SAMPLE, sampel digunakan untuk memilih subset dari dataset secara acak.BAR, menggambar pita yang lebarnya proporsional terhadap (x - min) dan sama dengan lebar karakter ketika x = max. Lebar secara default adalah 80.string[begin:end], mengekstrak string menggunakan konvensi slice. Argumen begin atau end yang tidak ada ditafsirkan sebagai awal atau akhir daftar, masing-masing. Nilai negatif diterima.regexp_replace, jika string mengandung pola regexp, mengganti bagian yang cocok dengan replacement.LENGTH, mendapatkan jumlah karakter dalam string.
Update on GitHubTersedia banyak fungsi yang berguna dalam ringkasan fungsi SQL DuckDB. Bagian terbaiknya adalah Anda dapat menggunakannya langsung pada dataset Hugging Face.