【发布时间】:2019-06-08 12:46:54
【问题描述】:
我有一个在 date(transaction_time) 上有分区的表,而且我有一个
选择 MAX 的问题。
如果我在一个 ID 的结果中得到多于 1 行,我会尝试获取时间戳最高的行。
数据示例:
1. ID = 1 , Transaction_time = "2018-12-10 12:00:00"
2. ID = 1 , Transaction_time = "2018-12-09 12:00:00"
3. ID = 2 , Transaction_time = "2018-12-10 12:00:00"
4. ID = 2 , Transaction_time = "2018-12-09 12:00:00"
我想要的结果:
1. ID = 1 , Transaction_time = "2018-12-10 12:00:00"
2. ID = 2 , Transaction_time = "2018-12-10 12:00:00"
这是我的查询
SELECT ID, TRANSACTION_TIME FROM `table1` AS T1
WHERE TRANSACTION_TIME = (SELECT MAX(TRANSACTION_TIME)
FROM `table1` AS T2
WHERE T2.ID = T1.ID )
我收到的错误:
错误:无法在没有过滤器的情况下查询表“table1” 可用于分区的列“TRANSACTION_TIME” 消除
【问题讨论】:
标签: google-cloud-platform google-bigquery