SQL

Cloud Spanner で ROW_NUMBER の代わりに連番を出力したい

SQL

Cloud Spanner でクエリの結果に連番を振ろうと思ったら ROW_NUMBER 関数がなかったので代わりの方法を探しました。(似たような関数も見つからなかった) cloud.google.com サンプルデータ ChatGPT に作ってもらったサンプルデータ。 -- DDL CREATE TABLE Sin…

timestamp 型のカラムに integer 型のカラムの値の加算して date 型で比較する

備忘録。 例えば、created_at カラムに days カラムの値を日数として加算して、その結果を日付で比較するようなケース。使い道があるかは分からないけど。 以下は PostgreSQL の場合。 SELECT * FROM table t WHERE CAST(t.created_at + CAST(t.days || 'day…

閉包テーブル (Closure Table)

閉包テーブル (Closure Table) は RDB で階層構造を表現する際に使われるデータモデルです。数年前にとある案件で使ったのですが、内容を忘れかけてるので復習します。備忘録。 閉包テーブルでは直接の親子関係だけでなく、階層全体の関係を持つ。閉包テーブ…

UNION したクエリで ORDER BY + CASE WHEN する

SQL

備忘録。 UNION したクエリで ORDER BY する。さらに ORDER BY 句で CASE WHEN するパターン。使い道があるかは分かりませんが。 UNION したクエリに AS で別名を付けて、ORDER BY 句ではこの別名を使う。 SELECT * FROM ( SELECT t.id AS t_id, t.name AS t…