显示最流行的男女名字
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
显示 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