0
我正在寻找解释为什么下面的代码不起作用。特别是行
lc = MIN(lc)OR lc = MAX(lc)
这不就是比较两个数吗?SQL - 无法使用多个聚合函数结果过滤表
SELECT city, lc FROM (SELECT city, LENGTH(city) AS lc FROM station) AS t1 GROUP BY city HAVING lc=MIN(lc) OR lc=MAX(lc)
编辑,因为人们不读我的问题,而是看我的代码,然后提供其修复,这一点我并不需要删除的部分信息。我想回答关于SQL概念/理论的问题。
它应该会返回一个错误 - 并且几乎可以在MySQL以外的任何数据库中使用。在'HAVING'中使用'lc'是不合适的,因为没有聚合函数。 –
@GordonLinoff,你是什么意思,“因为没有聚合函数”? lc是一个数字,MIN(lc)也返回一个数字,我是不是比较两个数字? –
。 。不,您正在比较来自不确定行的lc值与总体最小值。 –