В Rails 4.0 У меня есть эта таблица, и я хочу отсортировать ее по количеству вхождений location_id. В этом случае наиболее популярным location_id является 3. Я хочу сортировать таблицу в порядке убывания, начиная со всех записей с помощью location_id: 3 сверху.Заказ записей по количеству вхождений в базе данных
Таблица Geochecks-
┌────┬─────────┬─────────────┬─────────────────────┬────────────────────┬─────────────────────┐
│ id │ user_id │ location_id │ message │ created_at │ updated_at │
├────┼─────────┼─────────────┼─────────────────────┼────────────────────┼─────────────────────┤
│ 1 ╎ 14 ╎ 2 ╎ Test test t ╎ 2013-07-23 13:3... ╎ 2013-07-23 13:37... │
│ 2 ╎ 12 ╎ 3 ╎ ╎ 2013-07-23 13:5... ╎ 2013-07-23 13:54... │
│ 3 ╎ 15 ╎ 2 ╎ <html lang="en" ... ╎ 2013-07-25 08:5... ╎ 2013-07-25 08:57... │
│ 4 ╎ 12 ╎ 3 ╎ Ohohohooh ╎ 2013-07-25 11:3... ╎ 2013-07-25 11:37... │
│ 5 ╎ 12 ╎ 3 ╎ Pff kjasakljdfas... ╎ 2013-07-25 11:3... ╎ 2013-07-25 11:37... │
│ 6 ╎ 15 ╎ 4 ╎ ╎ 2013-07-25 13:5... ╎ 2013-07-25 13:54... │
│ 7 ╎ 13 ╎ 4 ╎ dasfdasfdasfdasf ╎ 2013-07-25 14:3... ╎ 2013-07-25 14:30... │
│ 8 ╎ 13 ╎ 3 ╎ ╎ 2013-07-25 14:3... ╎ 2013-07-25 14:30... │
│ 9 ╎ 13 ╎ 2 ╎ Test check message ╎ 2013-07-25 14:3... ╎ 2013-07-25 14:31... │
│ 10 ╎ 13 ╎ 5 ╎ asdfdasfdasfdasfa ╎ 2013-07-25 14:4... ╎ 2013-07-25 14:42... │
│ 11 ╎ 16 ╎ 7 ╎ Hohohooh ╎ 2013-07-26 07:5... ╎ 2013-07-26 07:50... │
└────┴─────────┴─────────────┴─────────────────────┴────────────────────┴─────────────────────┘
Я знаю, как считать их своим путем для напр .: Geochecks.where(location_id: 3).count #=> 4
и думал о цикле, который будет делать .where().count
запросы через всю таблицу и после этого сравнить результаты, чтобы найти самый большой, но я уверен, что есть более умное решение.
Желаемый результат: нужный результат должен быть списком location_id в порядке убывания. В этом случае он должен быть: 3, 2, 4, 5, 7
Я думаю, вам нужно будет иметь SQL-запрос, в котором вы сначала выполняете группу, счет и порядок, а затем снова присоединяете результат этого запроса к таблице, чтобы использовать его в качестве порядка. –
Я не очень хорошо разбираюсь в SQL-запросах. Не могли бы вы предоставить мне какие-либо примеры? Спасибо –
В том-то и дело. Если вы не знаете, как это сделать, я бы посоветовал вам сначала изучить SQL. Делать то, что вы не понимаете, это не путь. Вы можете попробовать немного обойтись и выполнить это с помощью Rails, позвольте мне написать ответ. –