我有一个数据库,包含以下信息:
+----+------+-----+-----+------+------+-----------+
| id | time | lat | lon | dep | dest | reg |
+----+------+-----+-----+------+------+-----------+
| a | 1 | 10 | 20 | home | work | alpha |
| a | 6 | 11 | 21 | home | work | alpha |
| a | 11 | 12 | 22 | home | work | alpha |
| b | 2 | 70 | 80 | home | cine | beta |
| b | 8 | 70 | 85 | home | cine | beta |
| b | 13 | 70 | 90 | home | cine | beta |
+----+------+-----+-----+------+------+-----------+
是否可以提取以下信息:
+----+------+------+----------+----------+----------+----------+------+------+--------+
| id | tmin | tmax | lat_tmin | lon_tmin | lat_tmax | lon_tmax | dep | dest | reg |
+----+------+------+----------+----------+----------+----------+------+------+--------+
| a | 1 | 11 | 10 | 20 | 12 | 22 | home | work | alpha |
| b | 2 | 13 | 70 | 80 | 70 | 90 | home | cine | beta |
+----+------+------+----------+----------+----------+----------+------+------+--------+
如果dep&dest是不同的,您将如何选择它们?你知道吗
厚度
(…)对其他列重复
您可以使用窗口函数:
当按id,time排序时,这将返回每个id的第一行和最后一行的数据。你知道吗
dep、dest和reg的值仅取自第一行(每个id)。你知道吗
如果您还想为相同的id设置不同的dep或dest值,那么只需在
partition by
子句中添加这些值。这一切都取决于您在这种情况下期望的输出:请考虑为列
time
使用不同的名称,因为this remark in the documentation:相关问题 更多 >
编程相关推荐