sql - Postgresql - 按时间戳和 car_id 分组
问题描述
我有一张汽车记录表:
table: cars
columns:
car_id | timestamp | km_driven
我在跑步PostgreSQL 9.6
。
我该怎么做:
SELECT timestamp, car_id, km_driven_within_the_hour FROM cars
我想GROUP BY
我的timestamp
所以每小时记录的所有记录都按每辆车分组,然后km_driven_within_the_hour
SUM
在那一小时内合并。
我试过了:
SELECT timestamp, car_id, SUM(km_driven) AS km_driven_within_the_hour
FROM cars
GROUP BY trunc(EXTRACT(hour from timestamp)), car_id
给我错误:
ERROR: function pg_catalog.date_part(unknown, text) does not exist
和铸造时间戳:
SELECT timestamp, car_id, SUM(km_driven) AS km_driven_within_the_hour
FROM cars
GROUP BY trunc(EXTRACT(hour from timestamp::timestamp)), car_id
给我:
ERROR: column "cars.timestamp" must appear in the GROUP BY clause or be used in an aggregate function
解决方案
您快到了。timestamp
按小时替换,如下所示:
SELECT
trunc(EXTRACT(hour from timestamp::timestamp)),
car_id,
SUM(km_driven) AS km_driven_within_the_hour
FROM cars
GROUP BY trunc(EXTRACT(hour from timestamp::timestamp)), car_id
推荐阅读
- c++ - 如何在 C++ 预处理器定义中获取 CMake 可执行文件名
- intervals - 计算两个角度区间的重叠
- javascript - 有两个出口会增加捆绑的大小吗
- python - OpenCV:如何检查 roi 的颜色?
- docker - 我应该使用哪种架构来预初始化一台服务器中的 N 个 docker?
- xml - 使用命名空间转换 XML 属性的 ITS 规则
- c# - 我有 2 个相同类型的武器槽,但是当我点击武器类型的物品时,只有 1 个槽被占用
- ruby-on-rails - 从 react 前端 react-on-rails 中的 rails 服务访问数据
- java - OPENJPA 2.4.3 显然在互联网上寻找持久性命名空间
- reactjs - 除非在 React 中单击两次搜索,否则查询字符串不会添加到 api