[英]how to write this query in sql
如何在sql中编写此查询:对于每位玩过两次以上游戏的玩家,请列出其姓名,获胜总额和每位玩家所玩游戏的数量。”结果应按获胜次数降序排列。
并且我在玩家表中具有以下属性:playerId,playerName,age,在游戏表中具有以下属性:gameId,playerId,结果请注意结果属性由(第一或第二或第三,或..或未显示)填充获胜者是结果第一的人
这是我的疑问,我没有正确的答案,但是我能做的就是所有。 任何想法
select playerName,count(*),count(*)
from games,player
where games.playerId=player.playerId
group by games.results
很难从问题中准确地找到您需要的东西,但是尝试这样的事情:
select playerName, count(*)
from games g
join player p ON g.playerId = p.playerId
group by playerName
having count(*) > 2
order by games.results DESC
*尝试一下(与您用英语说的差不多)
(如果“彩金”是游戏中的彩金),则:
Select playerName, count(*) Games, -- Number of game records per player
Sum(g.Winnings) Winnings -- Sum of a Winnings attribute (dollars ??)
from player p Join Games g -- from the two tables
On g.PlayerId = p.PlayerId -- connected using PlayerId
Group by p.playerName -- Output in one row per Player
Having Count(*) > 2 -- only show players w/more than 2 games
Order By Sum(g.Winnings) -- sort the rows based on Player Winnings
如果用“获胜”来表示获胜的游戏次数,那么...
Select playerName, Count(*) Games, -- Number of game records per player
Sum(Case g.WonTheGame -- or whatever attribute is used
When 'Y' Then 1 -- to specify that player won
Else 0 End) Wins -- Output in one row per Player
From player p Join Games g -- from the two tables
On g.PlayerId = p.PlayerId -- connected using PlayerId
Group by p.playerName -- Output in one row per Player
Having Count(*) > 2 -- only show players w/more than 2 games
Order By Sum(Case g.WonTheGame -- Sort by Number of games Won
When 'Y' Then 1
Else 0 End)
尝试这个 :
SELECT playerName, COUNT(g.PlayerID) as NumberOfPlays
FROM games g ,player p
WHERE g.playerId=p.playerId
GROUP BY g.PlayerID
HAVING COUNT(g.PlayerID) > 1
ORDER BY g.results DESC
SELECT-您要显示的数据
FROM-表格
在哪里-两个ID相互匹配
GROUP BY-游戏的PlayerID,因此所有计数都是正确的
拥有-确保他们玩了不止一场游戏
ORDER BY-按所需方式对结果进行排序。
select
playerName,
sum(if(games.result = 'first',1,0)) as wins,
count(*) as gamesPlayed
from player
join games on games.playerId = player.playerId
group by games.results
having count(*) > 2
order by count(*) desc;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.