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

MySQL查询按计算的失利百分比排序,找出球队克星

解决方案:按失利百分比排序找出克星球队

以下是修改后的SQL查询,可实现计算失利百分比并按该值排序的需求:

SELECT 
    ce.ID AS opponent_id,
    ce.name AS opponent_name,
    SUM(CASE WHEN re.bg < re.og THEN 1 ELSE 0 END) AS defeats,
    COUNT(re.opponent) AS played,
    ROUND(
        CASE WHEN COUNT(re.opponent) = 0 THEN 0 
             ELSE (SUM(CASE WHEN re.bg < re.og THEN 1 ELSE 0 END) * 1.0 / COUNT(re.opponent)) * 100 
        END,
        2
    ) AS defeat_percentage
FROM resultengine re
RIGHT JOIN clubengine ce ON re.opponent = ce.ID
WHERE re.ID < '767700'
GROUP BY ce.ID, ce.name
HAVING COUNT(re.opponent) > 0
ORDER BY defeat_percentage DESC, defeats DESC;

关键修改说明

  • 修正分组逻辑:原查询分组时同时选择了re.ID、re.bg等非聚合字段,这会导致结果异常(严格SQL模式下直接报错)。改为按球队ID和名称分组,确保分组的合理性。
  • 精准计算百分比:
    • 通过*1.0将整数转换为浮点数,避免整数除法导致的精度丢失(比如8/16的整数除法结果为0,转浮点后才能得到正确的0.5)。
    • 新增CASE WHEN处理交手次数为0的场景,彻底避免除以0的错误。
    • 用ROUND函数将百分比保留两位小数,结果更直观易读。
  • 过滤无效记录:添加HAVING played > 0,排除从未交过手的球队,只保留有对阵记录的对手数据。
  • 优化排序规则:优先按失利百分比降序排列,百分比相同的情况下再按失利次数降序,精准定位最棘手的克星球队。

内容的提问来源于stack exchange,提问作者Pete Hayman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:00:59