sql 查询 某字段 重复次数 最多的记录

本文介绍如何使用SQL的ROW_NUMBER() OVER()函数查询小时气象表中,同一日期、同一城市、同一检测站点的首要污染物出现次数最多的记录。通过添加排序字段,子查询和创建视图的方式,实现对污染物的统计分析。
摘要由CSDN通过智能技术生成

需求  查询小时气象表中 同一日期、同一城市、同意检测站点  首要污染物出现次数最多的记录

第一步: 添加 排序字段

        select StationID,RecordDate,CityID,Primary_Pollutant,ROW_NUMBER() over(partition by StationID,RecordDate,CityID order by count(0) desc ) as Numfrom  T_AirHourly 

        group by StationID,RecordDate,CityID,Primary_Pollutant 

第二步  子查询:在查询的基础上再次查询

     select StationID,RecordDate,CityID,Primary_Pollutant from (

        select StationID,RecordDate,CityID,Primary_Pollutant,ROW_NUMBER() over(partition by StationID,RecordDate,CityID order by count(0) desc ) as Numfrom  T_AirHourly 

        group by StationID,RecordDate,CityID,Primary_Pollutant 

)t where t.Num = 1

第三步 创建视图

 create view V_Primary_Pollutant as

     select StationID,RecordDate,CityID,Primary_Pollutant from (

        select StationID,RecordDate,CityID,Primary_Pollutant,ROW_NUMBER() over(partition by StationID,RecordDate,CityID order by count(0) desc ) as Numfrom  T_AirHourly 

        group by StationID,RecordDate,CityID,Primary_Pollutant 

)t where t.Num = 1

 结果:

 

第五步: 统计一天中各种污染物的平均值 

将视图作为独立模块  左连接查询  统计一天 各种污染物的平均值。

 

 

 转载:

row_ number over函数的基本用法

https://xiaoxiaoher.iteye.com/blog/2428619

函数语法: ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

函数作用:从1开始,为按组排序的每条记录添加一个序列号  函数只能用于select和order by子句中 不能用在where子句

 

不分组排序

不进行分组时语法为ROW_NUMBER() OVER(ORDER BY COLUMN),如:

有一个表A就一个字段num,数据如下

num

10

20

30

查询语句为select row_number() over(order by num) as idx,num from A

结果如下

num      idx

10          1

20          2

30          3

 

分组排序

分组的话ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2)表示根据COL1分组,在分组内部根据COL2排序,

而此函数的结果值就表示每组内部排序后的顺序编号(组内连续的惟一的)

表employee有数据如下

empid   

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值