2015-11-27 5 views
1

Я пытаюсь написать запрос в JCR_SQL2 без везения. У меня есть таблица, как показано ниже:JCR_SQL2 как получить отличные и агрегированные результаты

|property |example value| +---------------+-------------+ |user_name |John Smith | |restaurnat_name|McDonalds | |action |like | |food |big mac |

запрос будет что-то вроде этого: «получить наиболее понравившийся питание для пользователя, для ресторана»

и мой ответ был бы что-то вроде ниже:

|food |User Count| 
+-------+----------+ 
|big mac| 20 users | 
|nuggets| 19 users | 

Который упорядочен по количеству пользователей, а в таблице выше

Тем не менее, существует это еще одно предостережение, мне нужно обеспечить привязку к странице, чтобы я мог вернуться, как 10 результатов, и быть в состоянии перейти на следующую страницу, где я получу свои другие 10, убедившись, что на сортировку не влияет.

Любая помощь будет принята с благодарностью

ответ

0

Я не думаю, что JCR является правильным инструментом для подобных запросов. Это иерархическое хранилище с некоторыми дополнительными функциями сверху, но не база данных общего назначения и, конечно же, не db, оптимизированная для запросов интеллектуального анализа данных, подобных тем, которые вы описали выше. Вы должны использовать что-то еще для этого.

+0

спасибо за ваш ответ, я полностью согласен с тем, что JCR имеет эти ограничения, когда речь заходит о моих требованиях. но я использую Magnolia, которая построена на этом, поэтому я как бы вынужден использовать его ... я бы предпочел спящий режим, который даст мне гибкость. – zalis

+0

Вы все еще можете использовать Magnolia для доступа к данным, хранящимся в других местах. Это не ограничивается хранилищем JCR. Я верю в вашу другую должность, кто-то уже указал вам на руководство о том, как создать приложение no-jcr и как получить доступ к контенту за пределами JCR из Магнолии. – Jan

0

К сожалению, нет агрегатных функций в JCR SQL | XPath | JCR-SQL2/АКМ.

Единственное, что я могу предложить вам, заключается в следующем:

  1. либо перебирать эти узлы и делать все вычисления в вашем коде,
  2. либо, если эти узлы распространяемых через хранилище, запрашивать их по тип узла или restaurnat_name и, опять же, все вычисления в вашем коде.

 Смежные вопросы

  • Нет связанных вопросов^_^