提问人:Kenny Smith 提问时间:3/21/2023 更新时间:3/21/2023 访问量:60
循环自行车共享 SQL ORDER BY timestampdiff 显示 NULL
Cyclistic Bike Share SQL ORDER BY timestampdiff shows NULLS
问:
我正在尝试完成有关自行车共享数据的 Google 数据分析认证顶点项目。我从这里下载了 2022 年的月度数据:https://divvy-tripdata.s3.amazonaws.com/index.html。
有两个日期时间列,started_at 和 ended_at,包含客户租用和归还自行车的时间。使用这两列和 MySQL,我想获得这两者的差异以获得trip_length列。
使用 DBeaver 和 Visual Studio Code,我能够正确地显示按行程长度降序排序的数据:
SELECT
started_at,
ended_at,
TIMESTAMPDIFF(MINUTE, started_at, ended_at) AS trip_length
FROM
bikes.processed
ORDER BY
3 DESC
LIMIT 1000;
但是,每次我想翻转结果的顺序(按升序)时,DBeaver 和 Visual Studio Code 都会将所有数据显示为 NULL。我浏览了数据清理过程,并确保完全删除所有包含 null 变量的元组。
我找到了一个解决方法,即在这里使用顶级答案:MySQL Orderby a number, Nulls last
SELECT
started_at,
ended_at,
TIMESTAMPDIFF(MINUTE, started_at, ended_at) AS trip_length
FROM
bikes.processed
ORDER BY ISNULL(trip_length), trip_length ASC
LIMIT 10;
我对两个系统都显示空值和我不得不将空值结果推到最后感到有点不安。为什么会这样?如果出现一些随机空值,我可以相信我的分析吗?非常感谢!
以下答案显示所有空答案:
SELECT
started_at,
ended_at,
TIMESTAMPDIFF(MINUTE, started_at, ended_at) AS trip_length
FROM
bikes.processed
ORDER BY 3 ASC
LIMIT 10;
SELECT
started_at,
ended_at,
TIMESTAMPDIFF(MINUTE, started_at, ended_at) AS trip_length
FROM
bikes.processed
ORDER BY ISNULL(trip_length), trip_length ASC
LIMIT 10;
我希望至少找到填充的 started_at 和 ended_at 列,但由于某种原因,两个系统都只显示其中有 NULL 的列。
答: 暂无答案
评论