显示最流行的男女名字

Display the most popular male and female names

显示 BabyName

数据库中 1983 年以来最受欢迎的男女名字
SELECT COUNT(name) "Most Popular M/F Names from 1983", name  
FROM BabyName 
GROUP BY name 
ORDER BY year = '1983' AND COUNT(name) DESC
LIMIT 50

这是试图从 1983 年提取最流行的男性和女性名字。这是使用一个名为 babyname 的数据库,它是一个相当大的数据库。 这是我想出的唯一方法,但我也觉得这是错误的,因为它要求的是最受欢迎的女性和男性名字。关于如何处理这个问题有什么建议吗?我无法显示数据库信息,因为它相当大,但它包含姓名、性别、出生年份和来自的地方。

在 MariaDB 中,您可以使用 window 函数:

with cte as (
    select
        gender,
        name,
        count(*) as c,
        dense_rank() over (partition by gender order by count(*) desc) as dr
    from babyname
    where year = 1983
    group by gender, name
)
select *
from cte
where dr <= 5
order by gender, c desc