我正在寻找以下代码为何不起作用的解释。特别是线
lc = MIN(lc)或lc = MAX(lc)
这不只是比较两个数字吗?
选择城市,lc从
(选择城市,LENGTH(city)AS lc FROM station)AS t1
按城市分组
具有lc = MIN(lc)或lc = MAX(lc)
由于人们不是在阅读我的问题,而是在查看我的代码,然后提供针对此问题的修复程序,因此删除了很多信息,因此我不需要这样做。我想回答有关SQL概念/理论的问题。
最佳答案
您可以使用INNER JOIN
将表筛选为查找最小和最大长度的子查询。
SELECT s.city, LENGTH(s.city) AS city_length
FROM station AS s
INNER JOIN (
SELECT MIN(LENGTH(city)) AS min_length, MAX(LENGTH(city)) AS max_length
FROM station
) AS a ON LENGTH(s.city) IN (a.min_length, a.max_length);
当然,如果最小长度和最大长度有联系,您将获得所有这些条目。
关于mysql - SQL-无法使用多个聚合函数结果过滤表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42429624/