<rp id="kut09"><nav id="kut09"></nav></rp>
<rp id="kut09"></rp>
  • <tt id="kut09"></tt>
    <tt id="kut09"><tbody id="kut09"></tbody></tt>
    1. <u id="kut09"></u>
    2. <tt id="kut09"><noscript id="kut09"></noscript></tt>
    3. postgreSql分組統計數據的實現代碼

       更新時間:2020年12月29日 15:54:44   作者:Scoful  
      這篇文章給大家介紹postgreSql的監控記錄表里多條不同時間的數據,只取最新的數據,并分組統計,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

      1. 背景

      比如氣象臺的氣溫監控,每半小時上報一條數據,有很多個地方的氣溫監控,這樣數據表里就會有很多地方的不同時間的氣溫數據

      2. 需求:

      每次查詢只查最新的氣溫數據按照不同的溫度區間來分組查出,比如:高溫有多少地方,正常有多少地方,低溫有多少地方

      3. 構建數據

      3.1 創建表結構:

      -- DROP TABLE public.t_temperature
      
      CREATE TABLE public.t_temperature (
      	id int4 NOT NULL GENERATED ALWAYS AS IDENTITY,
      	place_name varchar NOT NULL,
      	value float8 NOT NULL,
      	up_time timestamp NOT NULL,
      	CONSTRAINT t_temperature_pk PRIMARY KEY (id)
      );
      
      -- Permissions
      
      ALTER TABLE public.t_temperature OWNER TO postgres;
      GRANT ALL ON TABLE public.t_temperature TO postgres;

      3.2 造數據

      INSERT INTO public.t_temperature (place_name,value,up_time) VALUES 
      ('廣州',35,'2020-07-12 15:00:00.000')
      ,('廣州',35.9,'2020-07-12 15:30:00.000')
      ,('深圳',30,'2020-07-12 15:30:00.000')
      ,('深圳',31,'2020-07-12 16:30:00.000')
      ,('三亞',23,'2020-07-12 16:30:00.000')
      ,('三亞',21,'2020-07-12 17:30:00.000')
      ,('北極',-1,'2020-07-12 17:30:00.000')
      ,('北極',-10,'2020-07-12 19:30:00.000')
      ;

      4. 需求實現

      4.1 需求1的SQL語句

      利用了postgreSql的一個函數:ROW_NUMBER() OVER( [ PRITITION BY col1] ORDER BY col2[ DESC ] )

      select
      	*
      from
      	(
      	select
      		tt.place_name,
      		tt.value,
      		tt.up_time,
      		row_number() over ( partition by tt.place_name
      	order by
      		tt.up_time desc) as row_num
      	from
      		t_temperature tt) aaa
      where
      	aaa.row_num = 1

      效果如下,查出的都是最新的數據:

      在這里插入圖片描述

      4.2 需求2的SQL語句

      利用了一個case when then else end 用法來統計數量

      select
      	dd.place_name,
      	sum(case when dd.value <= 0 then 1 else 0 end) as 低溫天氣,
      	sum(case when dd.value > 0 and dd.value < 25 then 1 else 0 end) as 正常天氣,
      	sum(case when dd.value >= 25 then 1 else 0 end) as 高溫天氣
      from
      	t_temperature dd
      group by
      	dd.place_name

      效果如下,因為沒有過濾每個地方的最新數據,查出的是所有數據:

      在這里插入圖片描述

      用需求1的結果來查詢統計:

      select
      	dd.place_name,
      	sum(case when dd.value <= 0 then 1 else 0 end) as 低溫天氣,
      	sum(case when dd.value > 0 and dd.value < 25 then 1 else 0 end) as 正常天氣,
      	sum(case when dd.value >= 25 then 1 else 0 end) as 高溫天氣
      from
      	(
      	select
      		*
      	from
      		(
      		select
      			tt.place_name,
      			tt.value,
      			tt.up_time,
      			row_number() over ( partition by tt.place_name
      		order by
      			tt.up_time desc) as row_num
      		from
      			t_temperature tt) aaa
      	where
      		aaa.row_num = 1) dd
      group by
      	dd.place_name

      效果如下:

      在這里插入圖片描述

      假如再嵌套一個sum統計,就能查出低溫天氣,正常天氣,高溫天氣分別合計數量是多少了。

      over,enjoy!

      到此這篇關于postgreSql分組統計數據的文章就介紹到這了,更多相關postgreSql分組數據內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

      相關文章

      • PostgreSQL教程(十六):系統視圖詳解

        PostgreSQL教程(十六):系統視圖詳解

        這篇文章主要介紹了PostgreSQL教程(十六):系統視圖詳解,本文講解了pg_tables、pg_indexes、pg_views、pg_user、pg_roles、pg_rules、pg_settings等視圖的作用和字段含義等內容,需要的朋友可以參考下
        2015-05-05
      • postgresql 計算時間差的秒數、天數實例

        postgresql 計算時間差的秒數、天數實例

        這篇文章主要介紹了postgresql 計算時間差的秒數、天數實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2020-12-12
      • PostgreSQL教程(四):數據類型詳解

        PostgreSQL教程(四):數據類型詳解

        這篇文章主要介紹了PostgreSQL教程(四):數據類型詳解,本文講解了數值類型、字符類型、布爾類型、位串類型、數組、復合類型等數據類型,需要的朋友可以參考下
        2015-05-05
      • PostgreSQL之pgdump備份恢復操作

        PostgreSQL之pgdump備份恢復操作

        這篇文章主要介紹了PostgreSQL之pgdump備份恢復操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2020-12-12
      • PGSQL 實現把字符串轉換成double類型(to_number())

        PGSQL 實現把字符串轉換成double類型(to_number())

        這篇文章主要介紹了PGSQL 實現把字符串轉換成double類型(to_number()),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2020-12-12
      • Windows下Postgresql數據庫的下載與配置方法

        Windows下Postgresql數據庫的下載與配置方法

        這篇文章主要介紹了Windows下Postgresql數據庫的下載與配置方法 ,需要的朋友可以參考下
        2014-06-06
      • postgresql查詢鎖表以及解除鎖表操作

        postgresql查詢鎖表以及解除鎖表操作

        這篇文章主要介紹了postgresql查詢鎖表以及解除鎖表操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2020-12-12
      • Windows下Postgresql下載與配置方法

        Windows下Postgresql下載與配置方法

        這篇文章主要為大家詳細介紹了Windows下Postgresql下載與配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
        2017-05-05
      • 初識PostgreSQL存儲過程

        初識PostgreSQL存儲過程

        這篇文章主要介紹了初識PostgreSQL存儲過程,本文講解了PostgreSQL中存儲過程的語法,并給出了一個操作實例,需要的朋友可以參考下
        2015-01-01
      • pgsql批量修改sequences的start方式

        pgsql批量修改sequences的start方式

        這篇文章主要介紹了pgsql批量修改sequences的start方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2020-12-12

      最新評論

      218彩票 www.jll-ah.com:巨鹿县| www.v6g4d.com:确山县| www.shluma.cn:贺兰县| www.all-best-slots.com:朝阳县| www.tfswbg.com:个旧市| www.trcreations.net:上思县| www.jddedman.com:南靖县| www.microseep.com:潞城市| www.melgog.com:广南县| www.spjjs.com:石家庄市| www.the-boyan.com:安宁市| www.daikaisu.com:东海县| www.convites-casamento.com:平乡县| www.ydgongce.com:卫辉市| www.cleanhouselimpeza.com:长顺县| www.955461.com:克拉玛依市| www.youthsportsfinder.com:黔西县| www.paltinumxtal.com:河东区| www.dachodesign.com:河南省| www.99069vv.com:京山县| www.cantastorie05.com:北海市| www.amde-in-china.com:胶州市| www.jk852.com:长春市| www.myspaceproxyace.com:太原市| www.ny553.com:大英县| www.geekordi.com:扶沟县| www.trekhouston.com:长治县| www.amde-in-china.com:新兴县| www.xianglinhe.com:肥城市| www.the-boyan.com:浪卡子县| www.dashrescue.org:定兴县| www.czxinlai.com:奉新县| www.lwshengfeng.com:奎屯市| www.canproimmigration.com:湖州市| www.5i3b.com:海伦市| www.air-max-run.com:周宁县| www.cmbgift.com:平罗县| www.asecondsecond.com:鞍山市| www.andyhennegan.com:含山县| www.zzchaguan.com:永兴县| www.21cloudnet.com:津市市| www.zimuv587.com:万源市| www.51pag.com:玉林市| www.shilongwangcn.com:共和县| www.shuneiyi.com:汶上县| www.zhengdayy.com:梅河口市| www.lsyqsm.com:札达县| www.choicecityrebels.com:梁河县| www.springersjourney.com:弋阳县| www.ilmulangka.com:宜川县| www.antski.com:苍南县| www.concreteinanyform.com:新宾| www.lsyqsm.com:乌拉特前旗| www.arecipesite.com:祁东县| www.ay-maplastik.com:思南县| www.69k96.com:富宁县| www.ipadwallpaperhd.com:泗洪县| www.weifangbt.com:莲花县| www.hg85345.com:绥宁县| www.thomasinjune.com:自治县| www.fabkarts.com:永仁县| www.aloeveramedicine.com:刚察县| www.bikeleads.com:克拉玛依市| www.diextro.com:博客| www.zj-meihong.com:湟中县| www.982130.com:新津县| www.shoottheliving.com:平乐县| www.youngwon1004.com:莱芜市| www.rs338.com:漾濞| www.tengbo688.com:孟州市| www.exteni.com:南皮县| www.bestincellular.com:盐池县| www.chinaaluminumcircle.com:儋州市| www.carouselshow.com:青龙| www.wonderfuldealspot.com:岑巩县| www.club-editeur-web.com:肥乡县| www.haoxinok.com:绥滨县| www.betatooling.com:汕尾市| www.stokistgreenworld.com:牡丹江市| www.zxnqw.cn:深圳市| www.chenabtimes.net:井陉县| www.chinaheliang.com:苗栗县| www.karolak-k.com:普安县| www.20105129.com:余姚市|