如何输出团队评级?

u3r8eeie  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(264)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

11个月前关门了。
改进这个问题
我有两张table: team(team_id, name) , performance(team_id, stage, place, date) . 球队应该获得积分:第一名10分,第二名5分,第三名3分,第4-7名1分。我需要输出团队的评分。我想应该是这样的:

  1. SELECT team.name, CASE place
  2. WHEN 1 points + 10
  3. WHEN 2 points + 5
  4. ...

预期结果:

  1. |---------------------|------------------|
  2. | team.name | Points |
  3. |---------------------|------------------|
  4. | Rockers | 34 |
  5. |---------------------|------------------|
  6. | Batmans | 23 |
  7. |---------------------|------------------|
  8. | ... | ... |
  9. |---------------------|------------------|
hs1rzwqc

hs1rzwqc1#

表中的第一个聚合 performance 通过条件聚合计算每个团队的总分,然后加入表 team 结果和排名的球队与 RANK() 或者也许 DENSE_RANK() 分析功能:

  1. select t.team_id, t.name,
  2. coalesce(p.points, 0) points,
  3. rank() over (order by coalesce(p.points, 0) desc) rnk
  4. from team t left join (
  5. select team_id,
  6. sum(
  7. case
  8. when place = 1 then 10
  9. when place = 2 then 5
  10. when place = 3 then 3
  11. when place <= 7 then 1
  12. else 0
  13. end
  14. ) points
  15. from performance
  16. group by team_id
  17. ) p on p.team_id = t.team_id
展开查看全部

相关问题