gpt4 book ai didi

mysql - sql - 从每种类型中选择金额

转载 作者:行者123 更新时间:2023-11-29 08:37:29 25 4
gpt4 key购买 nike

我想从“游戏”表中为每种游戏类型选择 10 个名称。

例如:10 个角色扮演游戏、10 个 Action 游戏、10 个 MMO 游戏...

问题是我的查询占用了大量资源,我想知道是否有人有想法以更好的方式编写此查询:

SELECT name
FROM games AS thisgame
WHERE (SELECT COUNT(1)
FROM games
WHERE games.game_id = thisgame.game_id
AND games.type > thisgame.type) <= 9

最佳答案

快速做到这一点的一种方法是变量技巧。它依赖 MySQL 特定的语法来模仿窗口函数。例如,要检索每种类型最多两个游戏:

select  s.name
, s.type
from (
select *
, (@rn := if(@cur=type, @rn+1, 1)) as rn
, @cur := type
from Games
join (select @cur := '') i
order by
type
) s
where rn <= 2

Live example at SQL Fiddle.

关于mysql - sql - 从每种类型中选择金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com