【发布时间】:2017-12-08 11:58:14
【问题描述】:
我想要以下的 SQL 查询。我是 SQL 的新手。下表只是我拥有的数据类型的一个示例。我有大约 3000 万行的非常大的数据,想编写一个查询来获取下面的输出表。
Id type data time
-----------------------------------------------------------
1 30 3.9 15:50:10.660555
1 30 4.0 15:50:10.660777
1 70 11.5 15:50:10.797966
1 30 4.1 15:50:10.834444
1 70 12.6 15:50:10.853114
1 70 16.7 15:50:10.955086
1 30 5 15:50:10.99
11 30 3.8 15:50:11.660555
11 30 4.1 15:50:11.660777
11 70 12.5 15:50:11.797966
11 30 4.7 15:50:11.834444
11 70 12.68 15:50:11.853114
11 70 16.76 15:50:11.955086
11 30 5.1 15:50:11.99
我有一张像上面这样的桌子。对于每种类型 70,我需要使用最后一个已知类型 30 进行计算。例如,对于 Id = 1,对于 15:50:10.797966 处的第一个类型 = 70 数据,我需要在 15 处获取 type = 30 数据: 50:10.660777 这样我就可以计算结果 = 11.5/4.0。同样,对于 type = 70 at 15:50:10.853114,我想要 type = 30 at 15:50:10.834444 的数据,所以我的结果 = 12.6/4.1。
我希望输出如下所示:
Id type result time
------------------------------------------------------
1 70 11.5/4.0 15:50:10.797966
1 70 12.6/4.1 15:50:10.853114
1 70 16.7/4.1 15:50:10.955086
11 70 12.5/4.1 15:50:11.797966
11 70 12.68/4.7 15:50:11.853114
11 70 16.76/4.7 15:50:11.955086
我希望能够使用 pyodbc 在 python 中执行这些 SQL 查询。
任何帮助将不胜感激!提前致谢!!
【问题讨论】:
-
你已经标记了mysql和postgresql,你实际使用的是哪一个?它们具有不同的功能,因此答案可能会有所不同,具体取决于使用的数据库。另请指定您使用的数据库版本。
-
@harmic:对不起,实际上是 SQL Server 2017。
-
time中没有date组件吗? -
@vkp:我确实有日期组件,但它不是必需的,因为每个文件 id 都有相同的日期。
标签: python sql sql-server pandas