我正在尝试解决这个挑战(不要求最终解决方案(!问题链接
第一步:我想返回城市列表,长度(city(按长度排序,而不是ROWNUMBER = 1
。
要选择名称最短的城市:
我的代码是:
SELECT DISTINCT city, LENGTH(city) FROM station ORDER BY LENGTH(city) ASC;
我期待结果按长度排序,但它是按城市排序的。如果我更改为:
SELECT DISTINCT city, LENGTH(city) FROM station ORDER BY city DESC;
它仍然按 ASC 顺序按城市排序。
我做错了什么?或者这是页面的问题,因为即使SELECT city FROM station ORDER by city DESC;
也不起作用。
谢谢。
这可能取决于数据库,但似乎distinct
可能会在order by
之后进行处理。 只需使用GROUP BY
:
SELECT city, LENGTH(city)
FROM station
GROUP BY city
ORDER BY LENGTH(city) ASC;