<tt id="eol1w"></tt>
  • 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

    最新評論

    盈利国际彩票 www.uhugame.com:光泽县| www.pstee.com:台前县| www.paintsprayerelite.com:博白县| www.40photography.com:马公市| www.638890.com:玉树县| www.jrjhl.com.cn:八宿县| www.ptlins.com:华阴市| www.ztxx.com.cn:揭西县| www.919772.com:泰顺县| www.mashrou3ak.org:玛多县| www.dashrescue.org:宝兴县| www.salon-as.com:奉新县| www.beauty-na.com:屏东县| www.ccchz.com:通化县| www.dantealighieribsb.com:华宁县| www.droid-factory.com:德清县| www.yarnundyedusa.com:呈贡县| www.boboschinesedeli.com:洞头县| www.rjsprafka.com:蒲江县| www.zctqw.cn:朔州市| www.tangoporteno.org:石阡县| www.te-tong.com:两当县| www.arkinserdigitaldesigns.com:东明县| www.wyadorkable.com:西昌市| www.8dem.com:英山县| www.stranded-deep.net:洪泽县| www.appleidd.com:东乌珠穆沁旗| www.q5689.com:离岛区| www.zgskx.com:濉溪县| www.vincentgrison.com:临邑县| www.goglgg.com:大余县| www.wedding-invites.net:海门市| www.zbtaocidao.com:抚宁县| www.charlescountytoday.com:白玉县| www.royal-factory.com:监利县| www.story-of-us.com:板桥市| www.taoyuangarden.com:徐闻县| www.cz-xhw.com:教育| www.ladypaservices.com:闸北区| www.lunarpaegs.com:仁寿县| www.illuminingtalks.org:渝北区| www.baidubocai.com:乳源| www.evbpower.com:淳安县| www.altinfircareklam.com:开封县| www.gluguru.org:牡丹江市| www.martingayford.com:拉萨市| www.ledlightdiecasting.com:且末县| www.ty3399.com:瑞昌市| www.thehappyendisnear.com:伊川县| www.kyriakosandkolette.com:西峡县| www.googlegol.com:嘉祥县| www.ctr-fk2register.com:肥城市| www.hammerheadradio.com:江城| www.nescafechina.com:新田县| www.testsite02.com:尚义县| www.5517vpn.com:平潭县| www.ljf21sj.com:正安县| www.n9878.com:巍山| www.ermanufacture.com:安徽省| www.digsharepoint.com:垫江县| www.tc-punching.com:哈巴河县| www.0830d.com:白沙| www.polperrocornwall.com:哈尔滨市| www.playing-roulette.net:金塔县| www.pixiankong.com:乌审旗| www.beautyincarnate.com:铁力市| www.blgzs88.com:梅河口市| www.pearlfan.com:尼玛县| www.bogree.com:遂平县| www.fm553.com:宁化县| www.georgepappasltd.com:舟山市| www.lecadeauenligne.com:江源县| www.appleidd.com:南宁市| www.bzwanhe.com:满洲里市| www.cueballbeograd.com:五台县| www.trebroncompany.com:西青区| www.dramacity4u.net:开封县| www.yulinbang.com:灌阳县| www.niaz711.com:辉南县| www.cp7579.com:焦作市| www.blainebandboosters.org:临城县| www.convites-casamento.com:彭山县| www.mkhew.com:汉川市| www.zgwhzy.com:浦江县|