作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们的扇区列类型枚举值为 ['Midfielder', 'Forward', 'Defender', 'Goalkeeper']。
我们希望按日期输出每个部门的最高分数和每个部门组的玩家姓名。
如果没有在任何日期预设数据,那么我们希望为 null 或 0。
date │ mid_score │ midfielder │ def_score │ defender
2017-12-26 │ 91 │ Dele Alli │ 74 │ Jan Vertonghen
2017-12-27 │ 61 │ Eric Dier │ 68 │ maya yoshida
最佳答案
您想要的聚合查询将按日期
和扇区
进行分组,然后查找该组的最高分数。我们可以将此查询放入子查询中,然后将您的表连接到其中,条件是日期、扇区和分数与子查询中的日期、扇区和最大分数相匹配。
SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT date, sector, MAX(score) AS max_score
FROM yourTable
GROUP BY date, sector
) t2
ON t1.date = t2.date AND
t1.sector = t2.sector AND
t1.score = t2.max_score
ORDER BY
t1.date,
t1.sector;
对于丢失的数据,处理该问题的一种选择是使用日历表。我认为这个答案有点太大了,无法容纳,但我会把它作为家庭作业留给你。
编辑:如果您希望每个日期都有一行,那么我们可以按日期对外部查询进行第二次汇总:
SELECT
t1.date,
GROUP_CONCAT(t1.sector ORDER BY t1.score) sectors,
GROUP_CONCAT(t1.score ORDER BY t1.score) scores
FROM yourTable t1
INNER JOIN
(
SELECT date, sector, MAX(score) AS max_score
FROM yourTable
GROUP BY date, sector
) t2
ON t1.date = t2.date AND
t1.sector = t2.sector AND
t1.score = t2.max_score
GROUP BY
t1.date
ORDER BY
t1.date;
关于mysql - 根据枚举值和按日期分组获取多列中的最高分数和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48056139/
我是 php 的初学者,所以对于这么简单的问题我感到很抱歉。我需要制作高分列表 - 从最高分到最低分排序。分数和昵称一起存在数据库中。 我知道我应该使用 asort,但我尝试了很多不同的方法,但我不起
我使用此代码从排行榜中获得最高分,但我不断获得 java.lang.IllegalStateException 在 LeaderboardScore lbs = arg0.getScores().ge
我有一个高分(最高分)系统,它根据玩家的经验来计算位置。但现在我需要在网络上的其他地方使用玩家的排名,也许网络上的更多地方也像个人一样得分高,就会显示玩家该技能的排名。 因此,仅仅循环并使用像rank
我是一名优秀的程序员,十分优秀!