【发布时间】:2020-06-15 02:50:09
【问题描述】:
我正在构建一个 ruby on rails 应用程序,它使用原始 SQL 来查询我的数据库,因为我听说它比使用 ActiveRecord 执行得更好,而且我将处理数百万条记录。
为了简单起见,我在 Table1 中有以下记录:
<id: 1, price: 20, quantity: 2, date: "2020-01-01T10:02:32">
<id: 2, price: 5, quantity: 1, date: "2020-01-01T10:32:12">
<id: 3, price: 10, quantity: 3, date: "2020-01-01T12:01:10">
我想要做的是每小时获得price * quantity 的总数作为哈希值或任何有意义的值。所以在这种情况下,结果将如下所示:
{“2020-01-01 10:00:00”: 45, “2020-01-01 12:00:00”: 30}
如您所见,2020-01-01 10:00:00 的值是 45,我们得到这个表单是在执行 (20*2)+(5*1),因为这些记录的日期都在同一小时内。
现在,最初,我在 ruby 中有一个简单的循环,它遍历该表并返回所需的结果,但后来我了解到原始 sql 在处理更大的数据时性能要好得多。我想知道如何使用原始 sql 获得这个结果。我正在使用postgresql。非常感谢任何类型的帮助。对不起,如果这是一个菜鸟问题。
编辑 我将时间戳更改为字符串类型,因为这就是我获取数据的方式。
【问题讨论】: