在DevCenter中尝试对Cassandra查询的IN语句使用“ order by”子句。 无法在DevCenter中分页
我有桌子 model_vals:
-----------------------------------------------
type_code date item_code
-------------------------------------------------
TYPE_0 2018-03-31 CREDITS
TYPE_10 2018-03-31 CREDITS
TYPE_25 2018-03-31 CREDITS
TYPE_50 2018-03-31 CREDITS
TYPE_75 2018-03-31 CREDITS
TYPE_90 2018-03-31 CREDITS
TYPE_100 2018-03-31 CREDITS
MEAN 2018-03-31 CREDITS
TYPE_0 2017-03-31 CREDITS
TYPE_10 2017-03-31 CREDITS
TYPE_25 2017-03-31 CREDITS
TYPE_50 2017-03-31 CREDITS
TYPE_75 2017-03-31 CREDITS
TYPE_90 2017-03-31 CREDITS
TYPE_100 2017-03-31 CREDITS
MEAN 2017-03-31 CREDITS
TYPE_0 2016-03-31 CREDITS
TYPE_10 2016-03-31 CREDITS
TYPE_25 2016-03-31 CREDITS
TYPE_50 2016-03-31 CREDITS
TYPE_75 2016-03-31 CREDITS
TYPE_90 2016-03-31 CREDITS
TYPE_100 2016-03-31 CREDITS
MEAN 2016-03-31 CREDITS
尝试在DevCenter中执行以下查询:
select * from model_vals
where type='COUNTRY'
and type_code in (
'TYPE_0',
'TYPE_10',
'TYPE_25',
'TYPE_50',
'TYPE_75',
'TYPE_90',
'TYPE_100',
'MEAN')
and item_code='CREDITS'
and date <='2018-03-31'
order by date desc;
1) 由于“ order by”和“ in”子句而导致的错误不能一起使用。 无法在DevCenter中分页,怎么办?
2) 如果必须使用日期<='2018-03-31'获取所有type_code的2018记录的记录。即共有8条记录。
如果没有'2018-03-31'记录,那么它将获得下一个数据8条记录,即2017-03-31中所有类型的记录。
如果没有2017-03-31的数据,那么它应该获得下一个数据8条记录,即2016-03-31中所有类型的记录。
如何实现这种结果查询?
答案 0 :(得分:1)
在IN
语句中提供多个分区时,仅在单个分区内进行数据排序。对于您的用例,最好不要对IN
使用多个分区键值,而应对分区键的每个单个值执行多个并行请求,获取数据,然后对应用程序中的数据进行排序。
P.S。我建议使用some of the courses on DataStax Academy,例如DS220(数据建模)。