Digamos que eu tenha os seguintes dados:
import duckdb
rel = duckdb.sql("""
FROM VALUES
([{'a': 'foo', 'b': 'bta'}]),
([]),
([{'a': 'jun', 'b': 'jul'}, {'a':'nov', 'b': 'obt'}])
df(my_col)
SELECT *
""")
que se parece com isto:
┌──────────────────────────────────────────────┐
│ my_col │
│ struct(a varchar, b varchar)[] │
├──────────────────────────────────────────────┤
│ [{'a': foo, 'b': bta}] │
│ [] │
│ [{'a': jun, 'b': jul}, {'a': nov, 'b': obt}] │
└──────────────────────────────────────────────┘
Gostaria de manter todas as linhas onde para qualquer um dos itens em um dos elementos de 'my_col'
, o campo 'a'
contém a substring'bt'
Então, saída esperada:
┌──────────────────────────────────────────────┐
│ my_col │
│ struct(a varchar, b varchar)[] │
├──────────────────────────────────────────────┤
│ [{'a': foo, 'b': bta}] │
│ [{'a': jun, 'b': jul}, {'a': nov, 'b': obt}] │
└──────────────────────────────────────────────┘
Como posso escrever uma consulta SQL para fazer isso?