Учитывая, что у меня есть следующая структура данных
CREATE TABLE db(
year int,
day int,
deal_id text,
update_dt timestamp,
codes set<text>,
payload text,
PRIMARY KEY ((year, day), update_dt, deal_id)
) WITH CLUSTERING ORDER BY (update_dt DESC);
И следующие данные в нем
year | day | update_dt | deal_id | codes | payload
------+-----+---------------------------------+---------+-----------------+--------------
2018 | 231 | 2018-10-30 11:21:59.001000+0000 | abc | {'a', 'c'} | Hi 2 there
2018 | 231 | 2018-10-30 11:21:59.001000+0000 | abcd | {'a', 'c'} | Hi 2 there 3
2018 | 231 | 2018-10-30 11:21:59.001000+0000 | abcde | {'a', 'c'} | Hi 2 there 3
2018 | 231 | 2018-10-30 11:21:59.001000+0000 | abcdef | {'a', 'c', 'e'} | Hi 2 there 3
Можно ли ограничить результаты
select * from db where year=2018 and day=231 and update_dt < '2018-10-31T11:21:59.001+0000';
Так, чтобы я отображал только те, которые имеют определенные коды, скажем 'a' и 'e', которые отображаются на одну запись с deal_id = abcdef?
Если этого нельзя достичь с помощью одной таблицы, как это сделать с двумя? Важно упорядочить по дате обновления и возможность ограничить его по дате.