gpt4 book ai didi

ruby-on-rails - 使用 postgresql 和 ruby​​ on rails 编写带有日期范围的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 14:34:52 24 4
gpt4 key购买 nike

我在使用下表编写 sql 语句时遇到问题。我有两个表,一个是 meter,另一个是 meter_infometer 表有以下几列

id, name, created_at

meter_info 有以下列

id, voltage, meter_id, created_at 

数据正在不断保存到meter_info表中。我想编写一个查询,该查询将采用一个日期范围,并在每个仪表的每个日期内准确地给我一个仪表信息。

假设我的仪表表中有 3 个仪表。

 id     name      created_at
1 meter-a 2017-10-10
2 meter-b 2017-10-11

在我的仪表表中我有很多数据

id    voltage    created_at     meter_id
1 15 2017-10-10 1
2 16 2017-10-10 1
3 14 2017-10-10 2
4 15 2017-10-10 2
5 13 2017-10-11 1
6 11 2017-10-11 1
7 13 2017-10-11 2
8 12 2017-10-11 2

现在我想编写一个查询,它将采用日期范围参数并像下面这样输出(数据范围是 2017-10-102017-10-11)

created_at     meter_id     voltage
2017-10-10 1 16
2017-10-10 2 15
2017-10-11 1 11
2017-10-11 2 12

所以我想要日期内每个仪表的最后记录。我不知道如何编写sql查询。我正在使用 PostgresqlRuby on Rails。提前致谢。

最佳答案

您必须使用 DISTINCT ON条款。

SELECT DISTINCT ON (created_at, meter_id) created_at, meter_id, voltage
FROM meter_info
WHERE created_at BETWEEN '2017-10-10' AND '2017-10-11'
ORDER BY created_at, meter_id, id DESC
;

关于ruby-on-rails - 使用 postgresql 和 ruby​​ on rails 编写带有日期范围的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46688803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com