今天我想得到一个帮助,在我的数据库中创建每个用户的分数。我有个问题:
SELECT
r1.id,
r1.nickname,
r1.fecha,
r1.bestia1,
r1.bestia2,
r1.bestia3,
r1.bestia4
r1.bestia5
FROM
reporte AS r1
INNER JOIN
( SELECT
nickname, MAX(fecha) AS max_date
FROM
reporte
GROUP BY
nickname ) AS latests_reports
ON latests_reports.nickname = r1.nickname
AND latests_reports.max_date = r1.fecha
ORDER BY
r1.fecha DESC
这是一个朋友从这个网站上帮助我获得的“每个用户在每一天的最后一个记录”,基于此,我正在寻找如何计算结果排名每天,每周或每月,为了使用统计图表或谷歌datastudio,我尝试了下一个:
select id, nickname, sum(bestia1), sum(bestia2), etc...
但它没有给出我想要的完整结果。这就是我寻求帮助的原因。另外,我知道datastudio过滤器,我可以显示许多图表,但我仍然可以完全计数。
例如,一个玩家在过去30天内报告了265个怪物被杀死,但是当我在datastudio中使用我的查询时,它只计算最新的值(可以是12)。所以我想正确地计算,以便与图表一起使用
使用我的查询筛选的sql记录:
2条答案
按热度按时间hpxqektj1#
获取每个用户在最近x天内杀死的怪物总数的一种通用方法,并像您在评论中建议的那样计算分数,可以如下所示:
现在,如果您想要相同的计算,但只考虑当前一周的天数(假设一周从星期一开始),则需要替换前一个
WHERE
下一个条款:更重要的是,如果您想要所有相同的,但只考虑到当前月份的天数,您需要替换
WHERE
条款签署人:要评估当前年度的统计数据,需要替换
WHERE
条款签署人:最后,对于您可以使用的特定天数范围的评估,例如:
我希望这本指南能帮助你,澄清你的看法。
cgyqldqp2#
这将为您提供每个用户在过去30天内杀死的怪物数量: