Sql 相关子查询中没有这样的列
因此,我编写了一个与中描述的查询几乎相同的查询。然而,我得到一个错误:没有这样的列Sql 相关子查询中没有这样的列,sql,sqlite,correlated-subquery,Sql,Sqlite,Correlated Subquery,因此,我编写了一个与中描述的查询几乎相同的查询。然而,我得到一个错误:没有这样的列b.when 我的选择声明: SELECT mileage, (SELECT b.mileage FROM MileageEvents as b WHERE `b.when` < `a.when` ORDER BY `b.when` DESC LIMIT 1) as last_mileage, gallons, cost_per_gallon, `when` FROM
b.when
我的选择声明:
SELECT
mileage,
(SELECT b.mileage FROM MileageEvents as b WHERE `b.when` < `a.when` ORDER BY `b.when` DESC LIMIT 1) as last_mileage,
gallons,
cost_per_gallon,
`when`
FROM MileageEvents as a
(首先,我会使用普通的双引号转义,而不是MySQL样式的倒勾,或者更好的是,使用一个不是保留关键字的标识符)
您需要在“时使用b.”。您所做的是将整个字符串b.when
作为标识符,表名和列名之间没有拆分
重写:
SELECT
mileage,
(SELECT b.mileage FROM MileageEvents as b WHERE b."when" < a."when" ORDER BY b."when" DESC LIMIT 1) as last_mileage,
gallons,
cost_per_gallon,
"when"
FROM MileageEvents as a;
(首先,我会使用普通的双引号转义,而不是MySQL样式的倒勾,或者更好的是,使用一个不是保留关键字的标识符)
您需要在“
时使用b.”。您所做的是将整个字符串b.when
作为标识符,表名和列名之间没有拆分
重写:
SELECT
mileage,
(SELECT b.mileage FROM MileageEvents as b WHERE b."when" < a."when" ORDER BY b."when" DESC LIMIT 1) as last_mileage,
gallons,
cost_per_gallon,
"when"
FROM MileageEvents as a;
SELECT
mileage,
lag(mileage) OVER (ORDER BY "when") AS last_mileage,
gallons,
cost_per_gallon,
"when"
FROM MileageEvents;