在 Rails 4.0 我有这个表,我想按 location_id 的出现次数对其进行排序。在这种情况下,最流行的 location_id 是 3。我想从所有带有 location_id: 3 的记录开始按降序对表进行排序。
表地理检查-
┌────┬─────────┬─────────────┬─────────────────────┬────────────────────┬─────────────────────┐
│ 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... │
└────┴─────────┴─────────────┴─────────────────────┴────────────────────┴─────────────────────┘
我知道如何将它们计算为 ex.:Geochecks.where(location_id: 3).count #=> 4
并考虑了一个循环,它将.where().count
通过整个表执行请求,然后比较结果以找到最大的一个,但我很确定有一个更聪明的解决方案。
期望的输出:期望的输出应该是降序的location_id列表。在这种情况下,它应该是:3, 2, 4, 5, 7