在MYSQL中使用sum函数过滤窗口函数的方法
P粉186904731
P粉186904731 2023-08-30 22:03:52
0
2
562
<p>如何编写此查询以仅过滤出总和大于50的结果?我无法使用having或sum使其正常工作,但我确定有某种方法。</p> <pre class="brush:php;toolbar:false;">select name, sum(score) from submissions inner join hacker on submissions.hacker_id = hacker.hacker_id group by submissions.hacker_id order by sum(score) desc having sum(score) > 50</pre> <p>这里有一个包含表格的示例(表格没有什么特殊之处,此查询在没有最后一行的情况下运行,但会返回所有人的分数和姓名):http://sqlfiddle.com/#!9/7a660d/16</p>
P粉186904731
P粉186904731

全部回复(2)
P粉877114798

Order by should be in last

select name, sum(score) 
from submissions 
inner join hacker on submissions.hacker_id = hacker.hacker_id
group by submissions.hacker_id
having sum(score) > 50 
order by sum(score) desc

按照应该在最后进行排序

选择 名称, 总分
从 提交
内连接 黑客 on 提交.黑客编号 = 黑客.黑客编号
分组 按 提交.黑客编号
筛选 总分 > 50 
排序 按 总分 降序
P粉909476457

您的order by应该在您的having之后。即:

select 
    name, 
    sum(score) 
from 
    submissions 
inner join 
    hacker on submissions.hacker_id = hacker.hacker_id
group by 
    submissions.hacker_id
having 
    sum(score) > 50 
order by 
    sum(score) desc
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!