我正在寻找以下代码为何不起作用的解释。特别是线
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/

10-11 03:07