我正在尝试执行以下功能。
B
我正在制作这个错误:
(_ mysql_exceptions.OperationalError)(1054,"未知列'持续时间'在' where子句'")[SQL:' SELECT Dog_Guid, start_time,end_time,TIMESTAMPDIFF(MINUTE,start_time,end_time)AS Duration \ n from exam_answers \ n其他持续时间> 0 \ norder by duration desc \ nlimit 10']
这是因为我无法在别名上使用%%sql SELECT Dog_Guid, start_time, end_time, TIMESTAMPDIFF(MINUTE, start_time, end_time) AS Duration
from exam_answers
where Duration > 0
order by duration desc
limit 10
,还是因为我无法在派生列上使用where
?我不知道我在这里做错了什么。我想要做的只是输出where
的所有列都更大(列也有空值,因此......)。
答案 0 :(得分:1)
您不能在where子句
中使用别名SELECT Dog_Guid, start_time, end_time, TIMESTAMPDIFF(MINUTE, start_time, end_time) AS Duration
from exam_answers
where TIMESTAMPDIFF(MINUTE, start_time, end_time) > 0
order by duration desc
limit 10
之前处理where子句而不是select子句..所以在处理别名的那一刻不知道
有关详细信息,请参阅手册“Problems with Column Aliases”。