我尝试在不使用嵌套查询的情况下使用R中的sqldf库对航班表进行子集化。我使用一个查询计算了中值和平均值,并将其存储到不同的表中。最后,我尝试应用WHERE条件进行求解,但我无法理解为什么JOIN函数会这样。我有两个问题。
1.在ON参数后没有指定两个键的情况下,如何执行INNER JOIN?
1.它基本上是把中间值和平均值放在JOINS后面的所有行中。为什么?
有人能解释一下这是怎么回事吗?
library(sqldf)
average = sqldf('SELECT AVG(distance) AS avg FROM flights')
median = sqldf('SELECT MEDIAN(distance) AS med FROM flights')
result = sqldf(
"SELECT flights.*
FROM flights
INNER JOIN average_q1 ON flights.distance
INNER JOIN median_q1 ON flights.distance
WHERE distance BETWEEN median_q1.med AND average_q1.avg"
)
1条答案
按热度按时间ajsxfq5m1#
给出:
with
子句(也称为Common Table Expression (CTE))组合SQL语句的另一种方法