我有表 A 和表 A 其中有
Table A
id, start_date, end_date
Table B
id, table_a_id, archive_date
我想返回表B中缺少的日期,即不在table_a start_date和end_date范围内的日期
我怎样才能在 cockroachdb 中做到这一点?
我尝试过使用generate_series,但出现未知签名错误,generate_series 不采用(日期、日期、间隔)
WITH date_series AS (
SELECT generate_series(
(SELECT w.export_start_date FROM table_a w WHERE w.id = 123),
(SELECT w.export_end_date FROM table_a w WHERE w.id = 123),
'1 day'::interval) AS missing_date
)
SELECT ds.missing_date
FROM date_series ds
LEFT JOIN table_b a ON a.table_a_id = 123
从 CockroachDB 文档中支持的函数列表来看,https://www.cockroachlabs.com/docs/stable/functions-and-operators,它看起来
generate_series
没有该函数签名(这类似于 Postgres - https ://www.postgresql.org/docs/current/functions-srf.html)。他们所拥有的如下:
后两者可能适用于您的用例 - 如果您愿意执行以下操作:
希望这可以帮助