Sql 如何获得每个唯一列的特定行数?

Sql 如何获得每个唯一列的特定行数?,sql,postgresql,Sql,Postgresql,我使用的是postgresql,我有两列:Country和Name。我想得到每个国家的x个人名号码 举个例子,如果我有这样的数据 Name Country "John" "US" "Kim" "KR" "Mike" "US" "Park" "KR" "Kim" "US" "Doe" "RU" "Pou" "KR" "John" "RU" "Sam" "RU" ... ... ... ... 我想为每个国家取2个ppl名称 Name Cou

我使用的是postgresql,我有两列:Country和Name。我想得到每个国家的x个人名号码

举个例子,如果我有这样的数据

Name    Country
"John"  "US"
"Kim"   "KR"
"Mike"  "US"
"Park"  "KR"
"Kim"   "US"
"Doe"   "RU"
"Pou"   "KR"
"John"  "RU"
"Sam"   "RU"
 ...    ...
 ...    ...
我想为每个国家取2个ppl名称

Name    Country
"John"  "US"
"Mike"  "US"



"Park"  "KR"
"Pou"   "KR"



"Sam"   "RU"
"Doe"   "RU"

有没有办法做到这一点

您可以在下面尝试-使用
row\u number()

从中选择*
(
选择名称、国家、行号()作为rn(按国家/地区划分,按名称排序)
从[表]

)您可能希望更具体一点,但您需要的一般查询是
SELECT Name,Country FROM[table]GROUP BY Name,Country ORDER BY Country
select * from
(
SELECT Name, Country, row_number() over(partition by country order by name) as rn
FROM [table] 
)A where rn<=10 [here x=10]