tl; dr
以下のSQLをArel(またはRailsで標準と見なされるもの)に変換する方法
@toplist = ActiveRecord::Base.connection.execute(
'select ci.crash_info_id,
count(distinct(user_guid))[Occurences],
c.md5
from crashes ci
join crash_infos c on c.id=crash_info_id
group by ci.crash_info_id
order by [Occurences] desc')
---tlの終わり;dr----
私は小さなWebプロジェクトに取り組んでいます。目標は、顧客のクラッシュレポート(デスクトップアプリがクラッシュすると、サーバーに診断を送信します)を取得し、それらを分析して、アプリケーションの原因となる最も一般的なバグを表示することです。クラッシュ..そのため、ユーザーの最大のチャンクに影響を与えるバグの修正に集中します。
私は2つのテーブルを持っています:
crack_infos --id、md5(.netのスタックトレースのmd5スタックトレースと例外メッセージは.netによってユーザーの母国語に変換されることがあります!したがって、言語固有の部分を削除してmd5を生成することにより、基本的に例外をサニタイズします)
クラッシュ-id、user_guid(ユーザーID)、crash_info_id(idからcrash_infosテーブル)
ここで質問ですが、一意のユーザーの最も一般的なクラッシュを表示するクエリを作成し(同じユーザーの同じクラッシュを何度もカウントすることは避けてください)、クラッシュの数で並べ替えたいと思いました。残念ながら、私は十分なArel(またはRuby on Railsの方法)を知らなかったので、生のSQLになりました:(
@toplist = ActiveRecord::Base.connection.execute(
'select ci.crash_info_id,
count(distinct(user_guid))[Occurences],
c.md5
from crashes ci
join crash_infos c on c.id=crash_info_id
group by ci.crash_info_id
order by [Occurences] desc')
これをもっと「レールのような」ものに変換するにはどうすればよいですか?
前もって感謝します