【发布时间】:2014-02-26 00:50:08
【问题描述】:
我正在使用 ruby、sinatra、postrges 和 sequel。我有一个英国房价数据数据库,其中一个字段是价格。我已经尝试过数字、整数、金钱和真实数据类型,这一切都是一场灾难。目前我使用的是 numeric(8),ruby 代码是:
result = DB[:house_data].select_group(:city).select_append{avg(:price)}.to_a.to_json
输出是:
[{"city":"BOREHAMWOOD","avg":"0.3035E6"},{"city":"LEIGHTON BUZZARD","avg":"0.2089495E6"},{"city":"LEYBURN","avg":"0.37075E6"},{"city":"KEIGHLEY","avg":"0.68E5"},{"city":"TELFORD","avg":"0.122960714285714286E6"},{"city":"FILEY","avg":"0.18025E6"}]
当然,这是没有希望的,因为数字(对于 avg)是没有意义的。我尝试了不同类型的查询(再次使用 avg)并且输出总是相似的。例如,以下总是传递错误消息:
DB[:house_data].where(:city => 'LONDON').avg{:price}
和
DB[:house_data].where(:city => 'LONDON').where(:price > 100000)
两者都会产生错误,说明无法执行该功能。
问题出在哪里? postgres 数据库中的查询或数据类型?
【问题讨论】:
标签: ruby postgresql sequel