2014-10-08 3 views
0

У меня есть модель Reminder с полями:Группы пользователей кидают ошибки

:text, :name, :user_id 

Как вы можете видеть, я Refernce пользователя.

Теперь я попытался сделать запрос, который должен сгруппировать напоминания пользователей:

Reminder.group(:user_id) 

Я видел много одних и те же проблемы, на StackOverflow, но почему-то я до сих пор не смог исправить эту ошибку:

Grouping error: ERROR: column "reminders.id" must appear in the GROUP BY clause or be used in an aggregate function 
LINE 1: SELECT "reminders".* FROM "reminders" GROUP BY user_id 

Что я сделал не так?

+2

Вы не можете выбрать * с помощью группы. все столбцы должны быть включены в группу или они должны быть указаны в предложении select с помощью агрегатной функции, такой как sum или max. – JLampon

+0

Что вы пытаетесь сделать btw, найти дубликаты user_id? – JLampon

+0

@JLampon Я бы хотел, чтобы он как-то так перечислил: '1 => [blabal], 23 => [holso] ..' –

ответ

0

Чтобы найти повторяющиеся записи user_id и увидеть данные, которые вы можете сделать следующее: Select reminders.* From reminders Where user_id exists (Select user_id, Count(*) From reminders Group By user_id Having Count(*) > 1)

посмотреть, если это работает.

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