Как использовать ORDER BY с оператором IN в запросе cassandra в DevCenter - PullRequest
0 голосов
/ 06 февраля 2019

Попытка использовать предложение «упорядочить» с оператором IN запроса Cassandra в DevCenter.Невозможно PAGING OFF в 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) Получение ошибки как "заказпредложения "and" in "нельзя использовать вместе.Невозможно PAGING OFF в DevCenter, как это сделать?

2) Если нужно выбрать записи из 2018 записей со всеми type_code, используя дату <= '2018-03-31'.т.е. всего 8 записей. </p>

Если у вас нет записей '2018-03-31', то он должен получить следующие данные 8 записей, т.е. для всех типов в 2017-03-31.

Если нетданные за 2017-03-31, тогда он должен получить следующие данные 8 записей, т.е. для всех типов в 2016-03-31.

Как можно добиться такого рода результатов запроса?

1 Ответ

0 голосов
/ 06 февраля 2019

Сортировка данных происходит только внутри одного раздела, а вы предоставляете несколько разделов в операторе IN.В вашем случае лучше не использовать несколько значений ключа секционирования с IN, а вместо этого выполнить несколько параллельных запросов для каждого отдельного значения ключа секционирования, получить данные и затем отсортировать данные в вашем приложении.

PSЯ рекомендую получить некоторые курсы по DataStax Academy , например, DS220 (моделирование данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...