问候所有国家的SQL人员。
一个简单的问题,希望是一个简单的答案。
我有一个包含人员信息的Oracle数据库表。列为:
FirstName, LastName, BirthDate, BirthCountry
假设在此表中,我有1500人出生在阿鲁巴(BirthCountry =“ Aruba”),678博茨瓦纳人(BirthCountry =“ Botswana”),13338加拿大人(BirthCountry =“ Canadia”)。
我需要写哪个查询来提取每个国家的10条记录的样本批次?只要有10,就没有关系。
此查询将输出30行,每个BirthCountry输出10行。
这将从每个国家/地区选择10个最年轻的人:
SELECT * FROM ( SELECT p.*, ROW_NUMBER() OVER (PARTITION BY birthCountry ORDER BY birthDate DESC) rn FROM persons p ) WHERE rn <= 10