首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何按州查找一个国家的第三大人口

如何按州查找一个国家的第三大人口
EN

Stack Overflow用户
提问于 2019-05-07 20:52:13
回答 3查看 57关注 0票数 -2

我有一个表,其中有三列zipcode、state和total_population。

代码语言:javascript
复制
ZIPCODE STATE   POPULATION
11937   36  15511
11941   36  1822
11940   36  4933
12435   36  280
12063   36  441
64733   29  1251
64734   29  1952
64735   29  13653

我在找这个

代码语言:javascript
复制
zipcode state third_highest_population
11941  36     1822
4733   29     1251

我想不出一个找到第三大人口的方法每个state..any的帮助都是非常感谢的

EN

回答 3

Stack Overflow用户

发布于 2019-05-07 20:58:53

您可以使用窗口函数帮助按州对邮政编码人口进行排名,然后保留每个州的第三个排名。

代码语言:javascript
复制
SELECT *
FROM (
   SELECT zipcode, 
      state, 
      total_population, 
      DENSE_RANK() OVER (PARTITION BY state ORDER BY total_population DESC) as ziprank
   FROM yourtable
) r
WHERE ziprank = 3

根据您的数据,RANK()DENSE_RANK()ROW_NUMBER()可能都可以在这里运行。DENSE_RANK()保证你会得到至少1个(但可能更多)的排名为3。你可能会得到更多的原因是如果两个邮政编码在该州共享相同的人口。不过,这是非常不可能的,所以DENSE_RANK()是一个很好的选择。

票数 1
EN

Stack Overflow用户

发布于 2019-05-07 20:58:55

类似于:

代码语言:javascript
复制
select * from (
    select  your_table.*,  rank() over(partition by state order by totpop) rnk from your_table
) t
where 
rnk = 3
票数 1
EN

Stack Overflow用户

发布于 2019-05-07 21:03:29

样本数据

代码语言:javascript
复制
DECLARE @Data AS TABLE (zipcode INT, 
                        [state] VARCHAR(10), 
                        [total_population] INT
                        )
INSERT INTO @Data
SELECT 500010,'Ap',24524540 UNION ALL
SELECT 500020,'KA',47857441 UNION ALL
SELECT 500030,'TN',89456655 UNION ALL
SELECT 500040,'KL',45775475 UNION ALL
SELECT 500050,'UP',47411189 

DECLARE @N INT = 3 -- Specify highest total as you required

使用Co相关子查询

代码语言:javascript
复制
SELECT * FROM @Data
Go
SELECT zipcode, 
       [state], 
       [total_population]
FROM @Data e1
WHERE @N-1 = ( SELECT COUNT(DISTINCT [total_population]) 
              FROM @Data e2
              WHERE e2.[total_population] > e1.[total_population] )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56023066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档