0

プロパティと値が文字列として定義された UserStat テーブルがあります... (CAST(value as integer) ) を user_stats where property = 'BEST_SCORE'" から選択すると、すべて問題ありません:

UserStat.find_by_sql(" select (CAST(value as integer) ) from user_stats where property = 'BEST_SCORE'") UserStat Load (8.6ms) select (CAST(value as integer) ) from user_stats where property = 'BEST_SCORE'

=> [#< UserStat id: なし、値: 869>]

しかし、私がするとき:

UserStat.find_by_sql(" select AVG(CAST(value as integer) ) from user_stats where property = 'BEST_SCORE'")

UserStat Load (9.7ms) select AVG(CAST(value as integer) ) from user_stats where property = 'BEST_SCORE'

=> [#< UserStat id: nil>]

私の値フィールドはどこですか???? 値として869を取得する必要があると思います..

4

1 に答える 1

0

a = ActiveRecord::Base.connection.select_all("select AVG(CAST(value as integer) ) from user_stats where property = 'BEST_SCORE'") a[0]['avg'].to_i で問題を解決します

しかし、 UserStat.find_by_sql(" select AVG(CAST(value as integer) ) from user_stats where property = 'BEST_SCORE'") はエラーを発生させるか値を返す必要があると考えています..

于 2013-08-24T06:29:03.380 に答える