>>> 这是我的查询的图像 我有一个超过 500000 行的数据集。 我有两列:
我需要知道会员和临时工前十名最繁忙的出发地点。 这意味着我需要 start_station_name 在输出中分别出现两次,分别表示会员的前十个位置和休闲的前十个位置。
我的查询是正确的,但我不知道为什么我得到输出“没有可显示的数据”。
我尝试过使用和不使用“LIMIT”。 我不知道该怎么办请帮助我。
我也检查了临时表,但我被告知我需要 cte,因为我需要两个单独的列。我也检查过,我有权限,我有数据。
这是我的代码,没有错误:
WITH casual_trips AS (
SELECT start_station_name,
COUNT(member_casual) AS casual_trip_times
FROM `cyclisticdataanalysis-402119.2022_Trip_Data.May2022_TripData`
WHERE member_casual = "casual"
GROUP BY start_station_name
ORDER BY COUNT(member_casual) DESC
)
SELECT
Main.start_station_name,
COUNT(member_casual) AS member_trips,
casual_trips.casual_trip_times AS casual_trip
FROM `cyclisticdataanalysis-402119.2022_Trip_Data.May2022_TripData` AS Main
JOIN casual_trips ON Main.start_station_name=casual_trips.start_station_name
WHERE member_casual = "%member%"
GROUP BY Main.start_station_name, casual_trip
ORDER BY casual_trip DESC,
member_trips DESC
对于通配符过滤器,请使用 like(不等于)。
WITH casual_trips AS (
SELECT
start_station_name
, COUNT(member_casual) AS casual_trip
FROM `cyclisticdataanalysis-402119.2022_Trip_Data.May2022_TripData`
WHERE member_casual = 'casual'
GROUP BY
start_station_name
ORDER BY
COUNT(member_casual) DESC
)
SELECT
Main.start_station_name
, COUNT(member_casual) AS member_trips
, casual_trips.casual_trip
FROM `cyclisticdataanalysis - 402119.2022 _Trip_Data.May2022_TripData` AS Main
INNER JOIN casual_trips ON Main.start_station_name = casual_trips.start_station_name
WHERE member_casual like '%member%' -- use LIKE here
GROUP BY
Main.start_station_name
, casual_trip
ORDER BY
casual_trip DESC
, member_trips DESC
ps:字符串文字通常使用单引号,标识符(例如列名)使用双引号。