【发布时间】:2021-03-16 12:24:57
【问题描述】:
我有 2 个表,一个包含产品更改信息,另一个包含测试信息,我正在尝试构建一个查询以查找测试前的最后一个产品更改信息。
例如,在下面的数据中,我想要返回的每个测试都类似于:
| product_sn | testtype | testdate | part_spec | changedate |
|---|---|---|---|---|
| ABC0001 | hot | 2021-01-01 13:00:00 | nylon | 2021-01-01 00:00:00 |
| ABC0001 | hot | 2021-01-01 16:00:00 | steel | 2021-01-01 15:00:00 |
| ABC1234 | hot | 2021-01-01 18:00:00 | steel | 2021-01-01 17:00:00 |
| ABC1234 | cold | 2021-01-01 18:10:00 | steel | 2021-01-01 17:00:00 |
| ABC1234 | mid | 2021-01-01 18:20:00 | steel | 2021-01-01 17:00:00 |
| ABC0001 | hot | 2021-01-02 09:00:00 | brass | 2021-01-01 20:00:00 |
| ABC1234 | cold | 2021-01-01 19:00:00 | steel | 2021-01-01 17:00:00 |
我在 sql 方面有点菜鸟,不太清楚在 stackoverflow 的其他地方搜索的最佳术语 :)
CREATE OR REPLACE TABLE Scratchpad.product
(`ID` INT64,
`product_sn` STRING,
`part_spec` STRING,
`changedate` datetime
)
;
INSERT INTO Scratchpad.product
(`ID`, `product_sn`, `part_spec`, `changedate`)
VALUES
(1, 'ABC0001', 'nylon','2021-01-01 00:00:00'),
(2, 'ABC0001', 'steel','2021-01-01 15:00:00'),
(3, 'ABC0001', 'brass','2021-01-01 20:00:00'),
(4, 'ABC1234', 'steel','2021-01-01 17:00:00'),
(5, 'ABC1234', 'nylon','2021-02-01 00:00:00')
;
CREATE OR REPLACE TABLE Scratchpad.test
(`ID` INT64,
`product_sn` STRING,
`testtype` STRING,
`testdate` datetime
)
;
INSERT INTO Scratchpad.test
(`ID`, `product_sn`, `testtype`, `testdate`)
VALUES
(1, 'ABC0001', 'hot','2021-01-01 13:00:00'),
(2, 'ABC0001', 'hot','2021-01-01 16:00:00'),
(3, 'ABC1234', 'hot','2021-01-01 18:00:00'),
(4, 'ABC1234', 'cold','2021-01-01 18:10:00'),
(5, 'ABC1234', 'mid','2021-01-01 18:20:00'),
(6, 'ABC0001', 'hot','2021-01-02 09:00:00'),
(7, 'ABC1234', 'cold','2021-01-01 19:00:00')
;
【问题讨论】:
标签: sql database datetime google-bigquery