在我的工作中,我需要在二十英里内收集一些颗粒数据,然后将其汇总到十分之一英里.这个任务是用python脚本完成的,但我想知道是否可以用materialized 视图来完成.下面是一个例子,展示了数据的最简单形式,以及我希望视图的外观.

最简单的形式:

Route Number Beginning Mile Post Ending Mile Post Route Length
001 0 0.02 105.6
001 0.02 0.04 105.6
001 0.04 0.06 105.6
001 0.06 0.08 105.6
001 0.08 0.10 105.6
001 0.10 0.12 105.6
001 0.12 0.14 105.6

这就是我希望视图产生的结果:

Route Number Beginning Mile Post Ending Mile Post Route Length
001 0 0.1 528
001 0.1 0.14 211.2

我try 过使用汇总、求和、MOD、余数,但不确定如何正确使用它们.

我会接受所有的建议和 idea .

推荐答案

您需要的是在创建视图时使用TRUNC()函数,例如

CREATE OR REPLACE VIEW v_Route AS
SELECT Route_Number, 
       MIN(TRUNC(Beginning_Mile_Post,1)) AS Beginning_Mile_Post,
       MAX(Ending_Mile_Post) AS Ending_Mile_Post,
       SUM(Route_Length) AS Route_Length
  FROM t
 GROUP BY Route_Number, TRUNC(Beginning_Mile_Post,1) 

Demo

Sql相关问答推荐

SQL查询以创建手头的流动余额?

如何查询一个名称是根据PL/pgSQL函数结果构建的表?

基于前面行的值:当x&>2时重复1,当连续3行x=0时则重复0

在SQL中返回缺省值,即使查询不返回任何结果

查找表中特定值的上次更新日期

我怎样才能得到列值对应的最大值在另一个?

查询页面推荐

将日期时间转换为日期格式

在MS Access Modern图表的X轴上显示时间值时遇到问题

在Postgres中合并相似的表

多条件SQL排序行为

如何在SQL中从多个查询进行分组

STContains、STIntersections和STWithin返回错误的地理结果

给定 3 个键列,从一个表中 Select 另一表中不存在的所有数据

创建具有多个子查询的 SQL 视图

基于变量的条件 WHERE 子句

汇总具有连续日期范围的行

在给定的日期范围内填写缺失的日期

获取 SQL Server 中每一行的两个-之间的文本

BigQuery 将一行拆分为多列