簡體   English   中英

按多列分組並計算結果

[英]Group by multiple columns and count results

如何對多列進行分組,並以ActiveRecord(Rails 3)和MySql的形式返回總體結果? 我嘗試過

MyModel.count(group: [:col1, :col2])

但這會返回一個很大的哈希值(表中大約有75.000條記錄),我只需要此查詢返回的總行數即可。

我可以做

MyModel.count(group: [:col1, :col2]).count # => 5266

但這會將所有內容加載到Rails中,速度變慢。

你有沒有嘗試過

MyModel.group(:col1).group(:col2).count

我注意到這不適用於關聯字段,但可以很好地用於其id列。

您可以像這樣對每個字段使用不同的計數。

MyModel.pluck('COUNT(DISTINCT col1) as col1, COUNT(DISTINCT col2) as col2')

你會收到這樣的結果

[[13273, 0]]

暫無
暫無

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

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