簡體   English   中英

根據關聯模型中的值對記錄進行排序

[英]Sort records according to value in associated model

我有兩個模型:學校和地址。

Address
    has_many :schools

School
    belongs_to :address

    t.bigint "address_id"

現在,我需要在School模型中建立作用域,以根據地址表中城市的出現情況對學校進行排序。 所以我需要以下結果:

School_1 | City_most_popular
School_2 | City_most_popular
School_3 | City_most_popular
School_4 | City_most_popular
School_5 | City_quite_popular
School_6 | City_quite_popular
School_7 | City_not_popular

我是這樣寫的:School.joins(:address).group(“ schools.id,addresss.city”)。order(“ addresses.city ASC”),但這僅允許按城市對記錄進行分組,而忽略發生。

School
 .joins(:address)
 .select('schools.*, count(*) OVER (PARTITION BY addresses.city) AS count')
 .order('count DESC')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM