You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询各城市最高时薪语句报错(错误码1064)求助

问题分析与解决

你的查询报错1064是因为两个语法问题:

  1. 子查询中rank() over(partition by city order by hourly_pay desc)没有指定列别名,外层查询无法引用这个计算列;
  2. rank是MySQL的保留关键字,直接在where子句中使用rank = 1会触发语法解析错误。

修正后的查询语句

给窗口函数的计算结果指定一个合法的别名(比如ranking),即可正常过滤:

select *
from
(
  select
    *,
    rank() over(partition by city order by hourly_pay desc) as ranking
  from persons
) as b
where ranking = 1;

如果一定要用rank作为别名,需要用反引号将其括起来(避免和关键字冲突):

select *
from
(
  select
    *,
    rank() over(partition by city order by hourly_pay desc) as `rank`
  from persons
) as b
where `rank` = 1;

预期结果

执行修正后的语句后,会返回每个城市时薪最高的行:

IDName1dateshourly_paycityranking
1Mohit2016-07-0712000nashik1
3rishi2019-07-0712000raipur1
4kartik2020-08-1825000jaipur1
5stephan2010-04-1817000bilaspur1
15drake2001-01-0120000delhi1
7arjun2009-05-0542000gurgaon1
8shub2005-04-0552000chennai1
9joe2010-05-0532000panji1
10wade2001-04-0549000chandigar1
11karti2008-04-0572000singapore1
13mokshi2005-05-0533000mumbai1
14hema2005-05-0560000deradun1

内容的提问来源于stack exchange,提问作者Abhishek Rohilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:53:12