【发布时间】:2021-11-27 06:27:00
【问题描述】:
我目前正在通过 Google 在 Coursera 上的数据分析认证学习 BigQuery 上的 SQL,但我对 TRIM() 函数有些困惑。因此,对于初学者来说,这是我要使用 TRIM() 的数据的屏幕截图。 enter image description here
SELECT ride_id, rideable_type, started_at, ended_at,
(SELECT (started_at - ended_at)) AS duration,
EXTRACT(time from started_at) AS start_time,
EXTRACT(time from ended_at) AS end_time,
EXTRACT(DAYOFWEEK from started_at) AS day_of_the_week
FROM `first-project-325905.bike_2020_april.july_bike`
WHERE member_casual = 'member'
^ 这是我为获取链接的第一张图片而运行的代码,但我想使用 TRIM 将结果 0-0 0 -0:3:56 转换为 0:3:56。我试过使用 RIGHT() 但它不能应用于所有字段,因为最近几天有一些旅行(所以我不能只使用 RIGHT(duration, 7) 因为它会从更长的旅行中裁剪数字。)
我尝试运行这段代码,将持续时间转换为字符串,然后使用 TRIM:
SELECT ride_id, rideable_type, started_at, ended_at,
(SELECT TRIM(CAST((started_at - ended_at)AS STRING), "0-0 0 -0:")) AS duration,
EXTRACT(time from started_at) AS start_time,
EXTRACT(time from ended_at) AS end_time,
EXTRACT(DAYOFWEEK from started_at) AS day_of_the_week
FROM `first-project-325905.bike_2020_april.july_bike`
WHERE member_casual = 'member'
持续时间的结果看起来像:3:56enter image description here
所以我的问题是,有没有办法使用 TRIM() 使持续时间看起来像 0:3:56 而不是 3:56?我一直在第二个代码块的第二行尝试"0-0 0 -0:" 的其他组合,但我似乎无法做到正确。作为参考,我正在尝试找到平均行程持续时间和最大/最小时间,所以我知道我必须在正确获得 TRIM() 后再次转换数据。
任何帮助将不胜感激!
【问题讨论】:
标签: sql date time google-bigquery trim