如何更改以下查询以限制结果,使每个人只显示两个游戏而不是四个?
这将使我更容易回答这个问题,这两个人最近都玩了哪两个游戏?或者类似的大集合问题,其中每个人返回许多记录。
我在mysql中通过phpmyadmin使用下面的sql来返回一个游戏列表,供一组回答问题的人使用,对于这组人,他们最近玩了哪些游戏?
目前每个人玩过的不同游戏都会出现在结果中。我想知道我是否可以限制每个人的游戏数量,例如两个。这样我就可以更容易地回答上面的问题了。
playgroup.fullname是一个包含我要为其创建列表的四个人的表。
查询
SELECT Games.Title, playgroup.FullName, Max(Responses.PlayDate)
FROM (Players INNER JOIN (Games INNER JOIN Responses ON Games.ID = Responses.Title) ON Players.ID = Responses.Player) INNER JOIN PlayGroup ON Players.ID = PlayGroup.FullName
GROUP BY Games.Title, PlayGroup.FullName
ORDER BY playgroup.FullName ASC, Max(Responses.PlayDate) DESC;
当前结果
对查询的什么更改会导致每个全名只返回两个游戏?
Title,
FullName,
Max(Responses.PlayDate)
Dutch Blitz
1
2020-06-14 00:00:00.000000
PitchCar
1
2020-06-13 00:00:00.000000
Bohnanza
1
2020-05-31 00:00:00.000000
Geocaching
1
2020-05-25 00:00:00.000000
Patchwork
2
2020-05-26 00:00:00.000000
Dominion
2
2020-05-25 00:00:00.000000
Geocaching
2
2020-05-25 00:00:00.000000
Disc Golf
2
2020-05-24 00:00:00.000000
Dutch Blitz
4
2020-06-14 00:00:00.000000
Bohnanza
4
2020-05-31 00:00:00.000000
Ingenious
4
2020-04-28 00:00:00.000000
Qwirkle
4
2020-04-08 00:00:00.000000
Colossal Arena
141
2020-06-19 00:00:00.000000
Roll for the Galaxy
141
2020-06-18 00:00:00.000000
Fortnite
141
2020-06-16 00:00:00.000000
Pendragon
141
2020-06-15 00:00:00.000000
1条答案
按热度按时间6l7fqoea1#
可以使用窗口函数: