Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

2024-02-15から1日間の記事一覧

SQLでの計算量(Big O)

O(1) オーダー テーブルから任意の1行を取り出す SELECT TOP 1 * FROM table; O(log N) オーダー インデックスが張られた列に対してのWHERE句による抽出 O(log N)なので、テーブルサイズが大きくなっても、あまり時間計算量は増えない O(N) オーダー 以下の…

BigQuery、比較演算子でNULLを比較

BigQueryで、比較演算子で比較される対象のどちらかがNULLだと結果はNULLになる。以下のクエリの結果はどちらもNULLになる。 SELECT CAST(NULL AS INT64) < 1; SELECT CAST(NULL AS INT64) = CAST(NULL AS INT64); 以下の例だとNULL行と今日の日付の2行が存…

BigQueryでのDELETE-INSERTは、MERGE ~ ON FALSEで行う

BigQueryでDELETE-INSERTしたい場合、 MERGE ~ ON FALSE WHEN NOT MATCHED BY SOURCE THEN DELETE WHEN NOT MATCHED BY TARGET THEN INSERT ROW を使用すると良い。DELETE-INSERTを行えるうえ、動作も早いらしい。 ON FALSEとすることで、NOT MATCHED BY SOU…