2012-03-23 2 views
0

Так что я в основном пытаюсь выбрать весь объект для первых 10 объектов, упорядоченных # вхождениями определенного атрибута в отношениях «много-к-одному».Сортировать по count() по определенному атрибуту Основные данные

По существу в одной таблице у меня есть атрибут 'id', который сопоставляется с другой таблицей. Может быть любое количество повторяющихся идентификаторов, и я хочу получить объект в зависимости от того, что будет происходить чаще всего.

Я могу справиться с этим штрафом в sql, но не знаю, как реализовать равноценный в основных данных?

Вот что я получил в SQL:

SELECT *, count(id) AS count FROM ____ ORDER BY count DESC LIMIT 0,10 

Большое спасибо за помощь всем! Очень ценно

+0

Это «основная дата» (в заголовке) или «основные данные» (в вопросе)? - есть орфографическая ошибка где-то – Bohemian

+0

основные данные .... ну что смущает – JLoewy

+0

Вы когда-нибудь находили ответ на этот вопрос. Я в настоящее время пытаюсь сделать это с помощью 'orderItem -> продукта'. Мне нужно получить 5 лучших продуктов. К счастью, мой список продуктов относительно короткий, поэтому я мог бы сделать стандартный groupBy и отсортировать его самостоятельно, но истинный запрос был бы приятным. – WCByrne

ответ

0

Мне сложно понять, правильно ли я понимаю вопрос, или как будет выглядеть ваше ожидаемое поведение: сортировка результатов. Например, если count ("some_specific_id")> 10, то какие 10 объектов вы хотите вернуть? Это имеет значение?

Этот вопрос в стороне, я не уверен, что вы сможете сделать это легко или эффективно.

Учитывая (как я понимаю):

  1. У вас есть отношения между сущностями Foo и Bar. Foo.bar - это взаимная связь с Bar, а Bar.foo - отношение многих к Foo.
  2. Вы хотите 10 объектов Foo, которые соответствуют вашему запросу SQL.

Вот один способ приблизиться к его:

  1. Fetch все ваши Бар лиц.
  2. Сортировка этого массива «foo. @ Count», по убыванию.
  3. Начните перечислять отсортированную матрицу массива и для каждого объекта захватите объекты Foo из своего свойства NSSet с именем foo, пока у вас их не будет 10.

Я не смог найти какой-либо доступ к документации Apple, чтобы сделать это, не получая все сущности Bar. С дополнительной информацией о ваших конкретных Существах вы можете увидеть что-то более умное. Другие предложения, плавающие вокруг, говорят, что если вы действительно хотите узнать количество объектов в отношениях Bar-> Foo, поддерживайте это в отдельном свойстве. Затем вы можете сделать выборку Bar, отсортированную по fooCount, и ограничить до 10, так как это будет верхний предел, необходимый для поиска 10 объектов Foo.

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