我正在回答一个问题,我被告知:
“查询表中具有最短和最长城市名称的两个城市,以及它们各自的长度(即:名称中的字符数)。如果有多个最小或最大的城市,请选择按字母顺序排列的第一个城市。
我正在运行下面的代码,但是它一直说我的答案是错误的:
SELECT CITY, LEN FROM (
SELECT CITY, LENGTH(CITY) AS LEN, ROW_NUMBER() OVER (ORDER BY LEN, CITY ASC) as r
FROM STATION ) as a
WHERE r IN (1, (select count(*) from a))
为什么不管用?
3条答案
按热度按时间ep6jt1vc1#
使用
ROW_NUMBER()
两次以获得城市的最小和最大长度:参见简化的demo。
ryhaxcpt2#
您还可以使用
jutyujz03#
(选择城市、长度(城市),从站点顺序按长度(城市)升序,城市升序限制1)
所有接头
(选择城市、长度(城市),从车站订单按长度(城市)说明,城市上升限值1)