【发布时间】:2019-08-13 03:19:07
【问题描述】:
我正在查询给定日期范围内一天中每小时平均每小时的行程次数。
这两个处理时间戳数据的函数之间到底有什么区别,有人可以解释一下为什么 num_trips 列中的第一个值不同吗?见下文
(
SELECT EXTRACT(HOUR FROM trip_start_timestamp) AS hour_of_day,
trip_seconds, trip_miles
FROM `bigquery-public-data.chicago_taxi_trips.taxi_trips`
WHERE EXTRACT(DATE FROM trip_start_timestamp) >= '2017-01-01'
AND EXTRACT(DATE FROM trip_start_timestamp) < '2017-07-01'
AND trip_seconds > 0
AND trip_miles > 0
)
SELECT hour_of_day,
COUNT(1) as num_trips,
(3600 * SUM(trip_miles) / SUM(trip_seconds)) as avg_mph
FROM RelevantRides1
GROUP BY hour_of_day
ORDER BY hour_of_day
(
SELECT EXTRACT(HOUR FROM trip_start_timestamp) AS hour_of_day,
trip_miles, trip_seconds
FROM `bigquery-public-data.chicago_taxi_trips.taxi_trips`
WHERE trip_start_timestamp > '2017-01-01' AND
trip_start_timestamp < '2017-07-01' AND
trip_seconds > 0 AND
trip_miles > 0
)
SELECT hour_of_day,
COUNT(1) AS num_trips,
3600 * SUM(trip_miles) / SUM(trip_seconds) AS avg_mph
FROM RelevantRides
GROUP BY hour_of_day
ORDER BY hour_of_day
我希望两个查询都返回相同的结果,但是当我打印数据帧时,第一个查询在一天的第一个小时内给出了不同的 num_trips 结果,我使用了Extract,其余的结果是相同的.
【问题讨论】:
-
请发布您的输入和上述查询的输出。
-
在 'trip_start_timestamp > '2017-01-01'' 中将 '>' 更改为 '>='
标签: sql google-bigquery