gpt4 book ai didi

MySql 选择每个国家的前 3 个结果

转载 作者:行者123 更新时间:2023-11-30 01:13:18 26 4
gpt4 key购买 nike

这是我的问题......(非常感谢来自 MySql 专家的任何建议)

我有一个数据库表,指定:

时间(9.99、10.96、11.02 等)
国家(例如 JAM、美国、加拿大等)
日期(例如 2011、2012、2013 等)

我希望显示指定年份(2012)按时间(ASC)排序的排名列表

问题 - 我只想在每个国家/地区最多显示三个条目,并且列表必须按时间 (ASC) 排序

我已经尝试过(来自此处的另一个建议):

set @num := 0, @country := '';
select country, time
from (
select country, time,
@num := if(@country = country, @num + 1, 1) as row_number,
@country := country as dummy
from stats

where eventID = 1
order by country
) as x where x.row_number <= 3;

但是,这在一定程度上有效 - 但它按国家/地区(按字母顺序)对列表进行排序。

抱歉,如果这太模糊了..但希望有一些想法!!!

非常感谢!

最佳答案

试试这个:

SET @n=0,@s=-1;
SELECT
country,
time
FROM (
SELECT
country,
time,
@n:=IF(@s=-1 OR @s=country,@n+1,1) as n,
@s:=country
FROM
stats
ORDER BY
country
) as tmp
WHERE
n <= 3
ORDER BY
time

关于MySql 选择每个国家的前 3 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19290874/

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