1

目的是编写一个 SQL 查询以从公共数据库返回乘车详细信息。

在学习数据分析课程时,我偶然发现了这个问题。使用的代码是正确的,因为提供的指令是相同的,但是我得到的结果是不同的。第一行返回一个空白行,其中仅包含提到的旅行次数。

1

这是我使用的代码

SELECT 
usertype,
CONCAT (start_station_name," to ",end_station_name) AS Route,
Count(*) AS num_trips,
Round(Avg(CAST(tripduration as INT64)/60),2) AS duration,
FROM `bigquery-public-data.new_york_citibike.citibike_trips`
GROUP BY 
start_station_name, end_station_name, Usertype
ORDER BY 
num_trips DESC
Limit 10
4

1 回答 1

1

发生这种情况是因为您实际上有 580 万行具有空用户类型、start_station_name 和 end_station_name,并且当您按 DESC 顺序排序时,它们在输出中显示为第一行。

假设您只需要在至少有一个 start_station_name 时进行计数,那么您可以添加一个 WHERE 子句

SELECT 
usertype,
CONCAT (start_station_name," to ",end_station_name) AS Route,
Count(*) AS num_trips,
Round(Avg(CAST(tripduration as INT64)/60),2) AS duration,
FROM `bigquery-public-data.new_york_citibike.citibike_trips`

WHERE start_station_name <> ''

GROUP BY 
start_station_name, end_station_name, Usertype
ORDER BY 
num_trips DESC
Limit 10
于 2021-12-03T16:57:35.620 回答