SQL 查询中不必要的空行

Unnecessary blank row in SQL query

Aim was to write a SQL query to return ride details from a public database.

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

这是我使用的代码

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

发生这种情况是因为您实际上有 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