Databricks SQLの文法リファレンス。型変換、正規表現、文字列操作、日付関数、配列操作、パフォーマンス最適化の手法。SQLクエリ作成時に参照。
標準SQLの知識は前提とし、Databricks固有の関数・制約を記載する。
TRY_CAST(column AS INT)
TRY_CAST(column AS DATE)
TRY_CAST(column AS BIGINT)
-- パターンマッチング(true/false)
REGEXP_LIKE(column, '^[0-9]+:')
-- パターン抽出(グループ番号で指定)
REGEXP_EXTRACT(column, '^([0-9]+):', 1)
-- パターン置換
REGEXP_REPLACE(column, '(.*)', '')
-- SEQUENCE + EXPLODEで連番行を生成(例: 0から27までの28行)
EXPLODE(SEQUENCE(0, 27))
CREATE TABLE - ワークスペースの権限設定によっては使用不可の場合があるCREATE MATERIALIZED VIEW - ワークスペースの権限設定によっては使用不可の場合がある-- セッションスコープの一時ビュー(セッション終了時に削除)
CREATE OR REPLACE TEMP VIEW view_name AS
SELECT ...;
-- メモリキャッシュ(大量データには不向き)
CACHE TABLE temp_table_name AS
SELECT ...;
-- エラーになる
SELECT
COALESCE(m.region, 'N/A') AS region,
SUM(sales) AS 売上
-- 正しい書き方
SELECT
COALESCE(m.region, 'N/A') AS `region`,
SUM(sales) AS `売上`
売上, store_name, 年月shop-codeshop name1st_columnselect, from, tableASCII英数字とアンダースコアのみで、数字で始まらない場合:
SELECT store_id, sales_amount, year_month_01
SELECT
DATE_FORMAT(t.accounting_date, 'yyyy-MM') AS `年月`,
COALESCE(m.region, 'N/A') AS `region`,
COALESCE(m.area, 'N/A') AS `area`,
COALESCE(m.store_name, 'Unknown') AS `store_name`,
t.store_id AS `store_id`,
SUM(t.sales_wo_tax) AS `売上`,
COUNT(*) AS `組数`,
SUM(t.number_of_people) AS `客数`,
ROUND(SUM(t.sales_wo_tax) / NULLIF(SUM(t.number_of_people), 0), 0) AS `客単価`
FROM ...
-- 最初にWHERE句で絞り込む
WHERE accounting_date >= ADD_MONTHS(CURRENT_DATE(), -24)
AND store_id IN (SELECT store_id FROM active_stores)
-- 事前に絞り込んでからJOIN
WITH active_members AS (
SELECT DISTINCT member_id FROM transactions
WHERE accounting_date >= '2024-01-01'
)
SELECT ... FROM members m
INNER JOIN active_members am ON m.member_id = am.member_id
WITH
step1 AS (SELECT ... FROM table1 WHERE ...),
step2 AS (SELECT ... FROM step1 JOIN table2 ...),
final AS (SELECT ... FROM step2)
SELECT * FROM final