表名称: series_type
id| type| description
1 | 0| No series (Any team win 1 will be the winner)
2 | 1| Best of 3 (Any team wins 2 will be the winner else draw)
3 | 2| Best of 5 (Any team wins 3 will be the winner else draw)
表格名称: 匹配项
ID| series_id | series_type | league_id | start_time |radiant_name | dire_name | radiant_win
1 | 8313 | 2 | 2096 | xxxxxxx1 | LV | LGD | true
2 | 8313 | 2 | 2096 | xxxxxxx2 | LGD | LV | false
3 | 8313 | 2 | 2096 | xxxxxxx3 | LV | LGD | false
4 | 8313 | 2 | 2096 | xxxxxxx4 | LV | LGD | false
5 | 8313 | 2 | 2096 | xxxxxxx5 | LGD | LV | false
输出: 使用League_id,start_time,radiant_name和dire_name ex的 所需
过滤器
。
Team "LV" total series wins 3.
Team "LGD" total series wins 2.
Series winner is LV.
输出: 我已经尝试过
使用SERIES_ID和SUM分组,但结果不同。
前任。 询问
SELECT SUM(IF(radiant_win = 1? 1, 0)) as LV, SUM(IF(radiant_win = 1? 0,1)) as LGD
前任。 不想要的结果〜〜_
Team "LV" wins 1.
Team "LGD" wins 4.
更新感谢
此查询为我提供了正确的结果,但是有1个问题,它给出了2列。 我需要一排
select *, count(winner) as count from (select case radiant_win when 1 then radiant_name else dire_name end as winner, radiant_team_id, dire_team_id, series_id, series_type from
matcheswhere leagueid = 2096 and start_time >= 1415938900 and ((radiant_team_id= 1848158 and dire_team_id= 15) or (radiant_team_id= 15 and dire_team_id= 1848158)) ) as temp group by winner;
查询结果 当前查询
winner| radiant_team_id| dire_team_id| series_id| series_type| count|
LGD| 1848158| 15| 8313| 2| 2
LV| 1848158| 15| 8313| 2| 3
查询结果 所需查询
winner|loser| radiant_name| dire_name| series_id| series_type| radiant_count| dire_count|
LV| LGD| LV | LGD| 8313| 2| 3| 2|
我将使用大小写,计数和分组
select winner, count(winner) from
(select case radiant_win
when 1 then radiant_name
else dire_name
end as winner
FROM test.`match` ) as temp
group by winner;
更新
更新问题后,我找不到start_time,radiant_team_id和dire_team_id作为您在评论中发布的内容。
以下答案可能不是您想要的答案,因为您在更新问题后仍不清楚我的问题。
select *, count(winner) as count
from (select case radiant_win
when 1 then radiant_name
else dire_name
end as winner,
radiant_team_id,
dire_team_id,
series_id,
series_type
from test.`matches`
where league_id = 2096 and
start_time >= 1415938900 and
((radiant_team_id= 1848158 and dire_team_id= 15)
or (radiant_team_id= 15 and dire_team_id= 1848158))
) as temp
group by winner;
我在C和一般编程方面是个新手,我想知道这段代码的性能/复杂性有多好,因为它与我在SO的其他帖子中发现的不同。for循环是否使这变得不必要的复杂?
我想这一定是一个简单的修复,但我仍然熟悉编码,所以偶尔我会陷入一些愚蠢的事情(会赶上的,最终哈哈) (我已经实现了所有其他可能获胜的行和列。没有将它们粘贴在这里以使问题更短,但它们都遵循上面的逻辑) 当玩家放置标记时,我调用该函数,一旦满足一个获胜条件,我会打印消息: 但游戏不会中断(我猜会是,因为我在每个条件后都“Rest”)。我的IF里面会发生什么?就像我说的,猜测一定很简单,但现在卡住了。
我该怎么做? 下面是我的代码:
我需要帮助写一些代码,计算最大可能的胜利在N游戏的岩石剪刀纸。 给我的是数字N,这是岩石纸剪刀游戏的数量,后面是N组整数(1,2,3),每个都链接到岩石,纸或剪刀。但是,我们不知道哪个数字链接到每个选项。我需要帮助计算第一个人可以赢的最多游戏数。
我正在创建一个石头、布、剪刀的游戏,我想让它显示个人的赢、输和平局。 当我运行它时,它总是说我输了。 我认为问题是要增加正确值的if-then语句。 我认为最后一件事可能是生成计算机选择的方法。 我该怎么解决这个问题?
打印TeamA以最佳方式进行战斗时可以赢得的最大战斗次数。假设数组中的每个数字都是一个成员,该成员与其他团队的另一个成员进行战斗。例如,TeamA[i]将与TeamB[i]作战,如果大于TeamB,则TeamA[i]获胜。在给定的阵列顺序下,TeamA只能赢得4场一对一的战斗。如果我们重新安排TeamA阵型,有可能赢得7场比赛。i、 TeamA== 下面是正确确定输出的代码,但由于排序而在时间上存