您的订单应该在您拥有之后。即
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
,
order by 应该在最后
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
,
您也可以在 sum 语句中使用 CASE。这种方法适用于 windows 函数,尽管我还没有针对正常的 sum 聚合函数对其进行测试
选项 1(总和的情况):
select name,sum(case when score>50 else 0 end)
from submissions inner join hacker on submissions.hacker_id = hacker.hacker_id
group by submissions.hacker_id
order by sum(score) desc
选项 2 Windows 功能:
select name,sum(case when score>50 else 0 end) over (partition by submissions.hacker_id)
from submissions inner join hacker on submissions.hacker_id = hacker.hacker_id
group by submissions.hacker_id
order by 子句略有变化,所以我省略了它,但您可以随时再次添加
本文链接:https://www.f2er.com/6828.html