有关从 TEMP 表运行查询的问题

问题描述 投票:0回答:1

好的,我正在学习 coursera 课程,并且正在运行如下所示的 SQL 查询:

WITH  
 longest_used_bike AS (
  SELECT bike_id,
  SUM (duration_minutes) AS trip_duration
  FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips` 
  GROUP BY bike_id
  ORDER BY trip_duration DESC
  LIMIT 1 )
SELECT 
trips.start_station_id, ---- this line
COUNT (*) AS trip_ct
FROM 
longest_used_bike AS longest
INNER JOIN
 `bigquery-public-data.austin_bikeshare.bikeshare_trips` AS trips
ON longest.bike_id = trips.bike_id
GROUP BY 
trips.start_station_id --- and this line
ORDER BY
trip_ct DESC
LIMIT 1

所以教练告诉我添加“行程”。在 start_station_id 之前,但如果我运行没有“行程”的查询。行,我得到相同的结果,有什么想法吗?

另外,它要求我使用 OUTER JOIN 运行查询,但我得到相同的结果,我做错了什么吗?

我使用的数据库是来自bigquery的公共数据中的austin_bikeshare数据库,以防万一这很重要

sql
1个回答
0
投票

我不是 100% 确定如何回答你的问题,因为它很难阅读。您应该使用代码块来维护代码的格式。

听起来您正在努力理解 JOIN 语句

Inner Join 会将所有匹配的内容连接在一起:如果您有一个包含“Product, CustomerId”的表和另一个包含“CustomerId, email”的表,则可以在 CustomerId 上 JOIN 这两个表;任何不匹配的行都将被忽略。

OUTER JOIN 无论如何都会将所有内容连接在一起,并在不匹配的单元格中填充 nan。它也称为 FULL OUTER JOIN。

我希望这在某种程度上有帮助。 JOINS 一开始并不是最容易掌握的东西,但如果你不放弃,你最终会得到它们。

© www.soinside.com 2019 - 2024. All rights reserved.