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

如何在给定SQL查询中正确添加DESC子句以避免报错?

问题解答

1. DESC子句的正确位置

DESC(降序排序)不能单独使用,必须配合ORDER BY子句一起,放在GROUP BY之后、LIMIT之前。比如你如果想按平均体重降序排列结果,修改后的查询如下:

SELECT AVG(people.weight) AS avg_weight,
       people.playerid,
       people.namefirst,
       people.namelast,
       batting.teamid,
       teams.name
 FROM people
 JOIN batting
 ON people.playerid = batting.playerid
 JOIN teams
 ON teams.teamid = batting.teamid
 GROUP BY people.playerid,
       people.namefirst,
       people.namelast,
       batting.teamid,
       teams.name
 ORDER BY avg_weight DESC  -- 此处添加ORDER BY与DESC组合
 LIMIT 30;

2. 查询中的冗余优化点(非报错原因)

  • 你在SELECT和GROUP BY里同时保留了batting.teamid和teams.teamid,但因为JOIN条件是teams.teamid = batting.teamid,这两个字段值完全一致,保留其中一个即可,减少冗余。
  • 字段名外层的括号是多余的,可直接去掉,不影响执行但能提升代码可读性。

加DESC报错的原因

SQL语法规定,DESC是排序方向的修饰符,必须依附于ORDER BY指定的排序字段,单独写DESC没有语法意义,因此会触发语法错误。

内容的提问来源于stack exchange,提问作者Simone Ghilotti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:01:12