Open9
duckdbメモ
await db.registerFileURL("sample1.json", "http://localhost:3000/sample1.json", DuckDBDataProtocol.HTTP, false)
みたいにファイルでできる
insertJSONFromPathを二回かけようとすると、すでにテーブルがあると怒られる。
下記のようにcreate: false
すると通せる
await connection.insertJSONFromPath("sample1.json", {
name: "fruit",
})
await connection.insertJSONFromPath("sample2.json", {
name: "fruit",
create: false
})
カラム数が違うものはUNION BY ALLは出来ないが、UNION BY NAMEならできる
const data = await connection.query(`
SELECT * FROM sample1.json
UNION BY NAME
SELECT * FROM sample2.json
`)
キャスト
::INTEGER
とかにするとキャスト楽にできる
const data = await connection.query(`
SELECT SUM(price)::INTEGER FROM sample1.json
`)
OPFS
pivot
- https://duckdb.org/docs/sql/statements/pivot.html#limitations
- USINGの変換はコツ必要。外側でやる