Сортировать результат группы по - Couchbase - PullRequest
0 голосов
/ 04 мая 2018

У меня есть такие документы

{"name":"Name_29","date":"2017-04-26","id":"ID_0","version":1} 

И я пытаюсь получить последнюю версию документа до указанной даты. (версия перезапускается с нуля на каждую дату).

Я пытаюсь выполнить такой запрос

SELECT * 
FROM docs 
WHERE date <= '2018-02-03' 
    AND id = 'x'
ORDER by date DESC, version DESC 
LIMIT 1

Но для всего диапазона имени.

SELECT RAW ARRAY_AGG({'name':name, 'id' : id ,'version' : version, 'date' : date}) 
FROM doc  
WHERE date <= '2017-02-27'
  AND name = 'NAME_02' 
GROUP BY id

Но я изо всех сил пытаюсь извлечь версию массива с наибольшей датой.

Есть ли хорошая и эффективная практика для этого?

1 Ответ

0 голосов
/ 10 мая 2018
SELECT MAX([date,version,doc])[2]
FROM doc
WHERE date <= '2017-02-27'
  AND name = 'NAME_02'
GROUP BY id;

Проверьте следующую ссылку для объяснения. запрос на выборку couchbase N1ql с негруппой по полям

...