- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个查询,试图找出您当前的连续出勤记录。所以换句话说,人 1 参加了最后 5 场事件,人 2 参加了最后 6 场事件,等等。我为此获得的数据文件非常简单:
Event Number - Unique Name
34 - Tim
34 - John
34 - Mike
34 - Larry
35 - John
35 - Mike
35 - Larry
35 - Paul
36 - John
36 - Steve
36 - Paul
endstate 查询结果有望产生:
John - 3
Paul - 2
Steve - 1
这里额外有趣的部分是已经发生了数百个事件,还有数百人已经/没有参加过。我找到了几篇关于 mysql 查询当前连胜的文章,但如果对每个可能的人没有明确的是/否,我就不会。
关于如何构建它有什么想法吗?
各位 - 感谢您的快速回复!不过,让我稍微澄清一下……我并不是要计算每个人参加的事件总数。相反,对于参加最后一次事件的每个人的人口,他们至少有 1 的连胜。但是如果你参加了最后一次事件,并且你也参加了最后 5 场事件,你的连胜就是 5。情况就是这样即使你在过去 3 年里参加了 100 场事件,如果你错过了一个约会,然后出现了最后 5 次可能的约会,你的连胜是 5 次。我想为参加最后一次事件的每个人做这件事。
最佳答案
假设您的表是 Event
,列是 EventID
和 Name
。我们可以通过以下查询确定每个人参加事件的顺序(即 1、2、3 等):
SELECT
e1.Name, e1.EventID, COUNT(*) AS PersonalEventSequence
FROM
Event e1
INNER JOIN
Event e2
ON e1.Name = e2.Name AND e1.EventID >= e2.EventID
GROUP BY
e1.Name, e1.EventID
我们可以利用 PersonalEventSequence
将每个人的事件分组到条纹中:
SELECT
Name, EventID - PersonalEventSequence AS StreakGroup
FROM
(
SELECT
e1.Name, e1.EventID, COUNT(*) AS PersonalEventSequence
FROM
Event e1
INNER JOIN
Event e2
ON e1.Name = e2.Name AND e1.EventID >= e2.EventID
GROUP BY
e1.Name, e1.EventID
) AS SubQuery1
现在每个人的事件都被分组为连续(公认的奇怪的 StreakGroup 数字!),我们可以确定每个人的连续的长度:
SELECT
Name, StreakGroup, COUNT(*) AS StreakLength
FROM
(
SELECT
Name, EventID - PersonalEventSequence AS StreakGroup
FROM
(
SELECT
e1.Name, e1.EventID, COUNT(*) AS PersonalEventSequence
FROM
Event e1
INNER JOIN
Event e2
ON e1.Name = e2.Name AND e1.EventID >= e2.EventID
GROUP BY
e1.Name, e1.EventID
) AS SubQuery1
) SubQuery2
GROUP BY
Name, StreakGroup
既然我们知道每个人的连胜长度,我们就可以确定每个人最长连胜的长度:
SELECT
Name, MAX(StreakLength) AS PersonalRecordStreakLength
FROM
(
SELECT
Name, StreakGroup, COUNT(*) AS StreakLength
FROM
(
SELECT
Name, EventID - PersonalEventSequence AS StreakGroup
FROM
(
SELECT
e1.Name, e1.EventID, COUNT(*) AS PersonalEventSequence
FROM
Event e1
INNER JOIN
Event e2
ON e1.Name = e2.Name AND e1.EventID >= e2.EventID
GROUP BY
e1.Name, e1.EventID
) AS SubQuery1
) SubQuery2
GROUP BY
Name, StreakGroup
) SubQuery3
GROUP BY
Name
注意事项:
关于mysql - 参加 Streak MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9476016/
很荣幸本周六被邀请到百度“英雄汇”移动开发者沙龙,在此次会议中,看到不少的大牛分享不错的干货,今天把我在会议中所听到的内容给大家分享一下。 数据价值 看起来就是广告的会议,其实也给我们统计出很多
我试图部分消耗Kotlin中的序列,以将其拆分。 fun main() { val seq = listOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).asSequence(
我正在处理一个查询,试图找出您当前的连续出勤记录。所以换句话说,人 1 参加了最后 5 场事件,人 2 参加了最后 6 场事件,等等。我为此获得的数据文件非常简单: Event Number - Un
我找不到只参与 rdd 的方法. take看起来很有希望,但它返回 list而不是 rdd .我当然可以将其转换为 rdd ,但这似乎既浪费又丑陋。 my_rdd = sc.textFile("my
我目前正在从事学术目的的自然语言处理工作,我想获取 Microsoft Research Sentence Completion Challenge 数据集。 不幸的是,它似乎不再可用 on Micr
我正在尝试让所有参加特定 Activity 的 Facebook 好友。 select uid, rsvp_status from event_member where uid IN (SELECT
我们的任务是编写一段代码来猜测 0 到 100 之间的一个 secret 数字。这是我的一段代码: low = 0 mid = 50 high = 100 secretnum = "Is your s
下学期我将使用我的 MacBook Pro 参加基于 Python 的计算机科学类(class)。它将以定制设计为中心 package对于这个类。问题是这个软件包是由 Microsoft Resear
我是一名优秀的程序员,十分优秀!