sql语句如下:select coach_id, tournament_name ,tournament_id, season_id, season, count(1) as num, sum(case when wdl = 0 then 1 else 0 end) as loss, sum(case when wdl = 1 then 1 else 0 end) as draw, sum(case when wdl = 3 then 1 else 0 end) as win from ( select a.coach_id,b.team_id, a.home_team_id, a.away_team_id,a.tournament_id, a.tournament_name, a.season_id,a.season, a.result, case when b.team_id = a.home_team_id then (case WHEN CONVERT(SUBSTRING(a.result, 1, LOCATE(':',a.result)-1), SIGNED) > CONVERT(SUBSTRING(a.result, LOCATE(':',a.result)+1, CHAR_LENGTH(a.result)), SIGNED) THEN 3 WHEN CONVERT(SUBSTRING(a.result, 1, LOCATE(':',a.result)-1), SIGNED) < CONVERT(SUBSTRING(a.result, LOCATE(':',a.result)+1, CHAR_LENGTH(a.result)), SIGNED) THEN 0 else 1 end ) when b.team_id = a.away_team_id then (case WHEN CONVERT(SUBSTRING(a.result, 1, LOCATE(':',a.result)-1), SIGNED) > CONVERT(SUBSTRING(a.result, LOCATE(':',a.result)+1, CHAR_LENGTH(a.result)), SIGNED) THEN 0 WHEN CONVERT(SUBSTRING(a.result, 1, LOCATE(':',a.result)-1), SIGNED) < CONVERT(SUBSTRING(a.result, LOCATE(':',a.result)+1, CHAR_LENGTH(a.result)), SIGNED) THEN 3 else 1 end ) end as wdl from p_coach_match_detail as a left join p_coach_career b on a.match_date > b.appoint_time and a.match_date < b.until_time and a.coach_id = b.coach_id and b.function = 'Manager' ) a where season_id >= 2017 and coach_id = 5075 group by coach_id, tournament_name ,tournament_id, season_id, season ORDER BY season_id DESC
原提问者GitHub用户zhuenjun
对于您的SQL语句,MySqlSchemaStatVisitor的orderByColumns属性会返回一个List对象,其中包含按照哪些列来排序的信息。在您的SQL语句中,ORDER BY子句是按照season_id列进行降序排序。
你提供的SQL查询语句非常复杂,包含了多个子查询和聚合操作。根据你的描述,你遇到了一个问题,即在执行该查询时可能出现了MySqlSchemaStatVisitor的orderByColumn错误。
针对这个问题,有几个可能的解决办法:
优化查询语句:复杂的查询语句往往容易导致性能下降或出错。你可以尝试优化查询语句,避免多层嵌套子查询,并检查是否可以进一步简化和重构查询逻辑。你可以考虑使用更清晰、更简洁的方式编写查询,以降低错误发生的概率。
分解查询:如果查询太复杂,检查其中每个子查询的结果是否正确,尝试将复杂查询分解为多个简单查询,以逐步检查和调试。如果在某个特定的子查询中出现了问题,你可以将其分离出来,并单独测试和分析。
更新MySQL版本:如果你正在使用较旧的MySQL版本,你可以尝试将其升级到最新版本,以获得更好的兼容性和性能。在MySQL的新版本中,可能会修复一些已知的问题和错误。
联系MySQL支持团队:如果以上方法都无法解决问题,建议你联系MySQL的支持团队,提供具体的错误信息和你的SQL查询语句,以获取更准确的帮助和建议。
请注意,在分析和优化复杂的SQL查询时,涉及到数据库调优的方方面面,所以根据实际情况和需求可能需要更详细和专业的审查和优化。
问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14
原回答者GitHub用户wenshao
根据您提供的信息中的 SQL 语句,可以看到该语句较为复杂,包含了多表查询、聚合函数和各种条件判断等。同时,在执行查询时还涉及到了 ORDER BY 排序操作,需要对查询结果进行排序。在执行 ORDER BY 操作时,MySqlSchemaStatVisitor 类会将排序涉及的列保存在 orderByColumns 属性中,以便于在后续的查询优化过程中使用。
对于该语句中的 ORDER BY 子句,可以看到是按 season_id 字段进行倒序排序,即最近的 season_id 排在最前面。因此,在 MySqlSchemaStatVisitor 中,orderByColumns 属性的值应该为 season_id DESC。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。