小编典典

SQL每行返回n行值

sql

问候所有国家的SQL人员。

一个简单的问题,希望是一个简单的答案。

我有一个包含人员信息的Oracle数据库表。列为:

FirstName, LastName, BirthDate, BirthCountry

假设在此表中,我有1500人出生在阿鲁巴(BirthCountry =“ Aruba”),678博茨瓦纳人(BirthCountry =“
Botswana”),13338加拿大人(BirthCountry =“ Canadia”)。

我需要写哪个查询来提取每个国家的10条记录的样本批次?只要有10,就没有关系。

此查询将输出30行,每个BirthCountry输出10行。


阅读 193

收藏
2021-05-16

共1个答案

小编典典

这将从每个国家/地区选择10个最年轻的人:

SELECT  *
FROM    (
        SELECT  p.*,
                ROW_NUMBER() OVER (PARTITION BY birthCountry ORDER BY birthDate DESC) rn
        FROM    persons p
        )
WHERE   rn <= 10
2021-05-16