亚洲十八**毛片,国产a久久精品一区二区三区,色综合桃花网,高清精品在线

技術(shù)知識
NEWS CENTRE
首頁
>
新聞中心
>
完成按月累加PostgreSQL
完成按月累加PostgreSQL
2021-08-13 閱讀:2609

這篇文章主要介紹了PostgreSQL完成按月累加的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧。

背景

統(tǒng)計某個指標,指標按照月進行累加,注意需要按省份和年份進行分組。

方法一、使用自關(guān)聯(lián)

-- with 按月統(tǒng)計得到中間結(jié)果
WITH yms AS (SELECT regionid,SUM(getnum) AS getnum,SUM(dealnum) AS dealnum,to_char(qndate,'yyyy-MM') AS yearmonth
FROM t_queuenumber
GROUP BY regionid,to_char(qndate,'yyyy-MM')
ORDER BY regionid,yearmonth)-- 查用子查詢解決。
SELECT s1.regionid,s1.yearmonth, getnum,dealnum,
(SELECT SUM(getnum) FROM yms s2 WHERE s2.regionid = s1.regionid AND s2.yearmonth <= s1.yearmonth AND SUBSTRING(s1.yearmonth,0,5) = SUBSTRING(s2.yearmonth,0,5) ) AS getaccumulatednum,
(SELECT SUM(dealnum) FROM yms s2 WHERE s2.regionid = s1.regionid AND s2.yearmonth <= s1.yearmonth AND SUBSTRING(s1.yearmonth,0,5) = SUBSTRING(s2.yearmonth,0,5) ) AS accumulatednum
FROM yms s1;

 

查詢的結(jié)果如下:

方法二、使用窗口函數(shù)

更多關(guān)于窗口函數(shù)的用法,可以參考以前的文章。窗口函數(shù)十分適合這樣的場景:

 WITH yms AS (SELECT regionid,SUM(getnum) AS getnum,SUM(dealnum) AS dealnum,to_char(qndate,'yyyy-MM') AS yearmonth
 FROM t_queuenumber
 GROUP BY regionid,to_char(qndate,'yyyy-MM')
 ORDER BY regionid,yearmonth)
 -- 窗口函數(shù)的使用
 SELECT regionid,yearmonth,
 SUM(getnum) OVER(PARTITION BY regionid,SUBSTRING(yearmonth,0,5) ORDER BY yearmonth) AS getaccumulatednum,
 SUM(dealnum) OVER(PARTITION BY regionid ,SUBSTRING(yearmonth,0,5) ORDER BY yearmonth) AS dealaccumulatednum
 FROM yms;

 

后記

可以使用子查詢、可以使用窗口函數(shù)完成上面業(yè)務(wù)場景。

補充:PostgreSQL實現(xiàn)按秒按分按時按日按周按月按年統(tǒng)計數(shù)據(jù)

提取時間(年月日時分秒):

import datetime
from dateutil.relativedelta import relativedelta
today = str(datetime.datetime.now())
print(today)
print(today[:4], today[:7], today[:10],today[:13])
 
print("************分隔符***************")
 
yesterday = (datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S")
yesterday2 = (datetime.datetime.now() + datetime.timedelta(days=-2)).strftime("%Y-%m-%d %H:%M:%S")
nextmonths = str(datetime.date.today() - relativedelta(months=-1))[:7]
lastmonths = str(datetime.date.today() - relativedelta(months=+1))[:7]
lastyears = str(datetime.date.today() - relativedelta(years=+1))[:4]
nextyears = str(datetime.date.today() - relativedelta(years=-1))[:4]
 
print(yesterday)
print(yesterday2)
print(nextmonths)
print(lastmonths)
print(lastyears)
print(nextyears)

 

結(jié)果:

2020-03-05 13:49:59.982555
2020 2020-03 2020-03-05 2020-03-05 13
************分隔符***************
2020-03-04 13:49:59
2020-03-03 13:49:59
2020-04
2020-02
2019
2021

 

昨日每時:

select s.acceptDate, s.data_num
 from (select to_char(acceptDate, 'yyyy-mm-dd hh24') || '點' as acceptDate,
        count(1) as data_num
     from table_name t
     where t.acceptDate >= to_date('20190506', 'yyyymmdd')
      and t.acceptDate < to_date('20190507', 'yyyymmdd') and organization_ = 'abcdefghijklmnopqrstuvwxyz'
     group by to_char(acceptDate, 'yyyy-mm-dd hh24') || '點') s

 

本月每天:

select s.acceptDate, s.data_num
 from (select to_char(acceptDate, 'yyyy-mm-dd') as acceptDate,
        count(1) as data_num
     from table_name t
     where t.acceptDate >= to_date('201905', 'yyyymm')
      and t.acceptDate < to_date('201906', 'yyyymm') and organization_ = 'abcdefghijklmnopqrstuvwxyz'
     group by to_char(acceptDate, 'yyyy-mm-dd') ) s

 

本年每月:

select s.acceptDate, s.data_num
 from (select to_char(acceptDate, 'yyyy-mm') as acceptDate,
        count(1) as data_num
     from table_name t
     where t.acceptDate >= to_date('2019', 'yyyy')
      and t.acceptDate < to_date('2020', 'yyyy') and organization_ = 'abcdefghijklmnopqrstuvwxyz'
     group by to_char(acceptDate, 'yyyy-mm') ) s

 

2月-7月中每月的人數(shù)統(tǒng)計:

sql = """SELECT to_char(rujiaoriqi, 'yyyy-mm') as month,count(1) num
           FROM jibenxx where rujiaoriqi is not null and zhongzhiriqi is null
           AND to_char(rujiaoriqi,'yyyy-mm-dd')>='2020-02-01'
           GROUP BY to_char(rujiaoriqi, 'yyyy-mm') order by to_char(rujiaoriqi, 'yyyy-mm') """

 

統(tǒng)計每年:

select s.acceptDate, s.data_num
 from (select to_char(acceptDate, 'yyyy') as acceptDate,
        count(1) as data_num
     from table_name t
     where t.acceptDate >= to_date('2015', 'yyyy')
      and t.acceptDate < to_date('2021', 'yyyy') and organization_ = 'abcdefghijklmnopqrstuvwxyz'
     group by to_char(acceptDate, 'yyyy') ) s

 

里面時間參數(shù)進行傳參即可。

補充:

統(tǒng)計今天(查詢當天或者指定某天數(shù)量)

1select count(1) FROM "shequjz_jibenxx" where to_char(zhongzhiriqi,'yyyy-mm-dd')='2019-11-11'

最近七天每天的數(shù)量:

select s.acceptDate, s.data_num
 from (select to_char(jiaozheng_jieshushijian, 'yyyy-mm-dd') as acceptDate,
        count(1) as data_num
     from shequjz_jibenxx t
     where t.jiaozheng_jieshushijian >= to_date('2020-11-06', 'yyyy-mm-dd')
      and t.jiaozheng_jieshushijian < to_date('2020-11-13', 'yyyy-mm-dd')
     group by to_char(jiaozheng_jieshushijian, 'yyyy-mm-dd') ) s ORDER BY acceptDate ASC

 

最近七天(1天、3天、7天、一個月、一年、1h、1min、60s)的數(shù)量(總量):

# 包括今天向前推6天的總量
select count(1) from shequjz_jibenxx where jiaozheng_jieshushijian
between (SELECT current_timestamp - interval '7 day')
and current_timestamp
# 最近一天(昨天)
SELECT current_timestamp - interval '1 day'
# 最近三天
SELECT current_timestamp - interval '3 day'
# 最近一周
SELECT current_timestamp - interval '7 day'
# 最近一個月(當前時間向前推進一個月)
SELECT current_timestamp - interval '1 month'
# 最近一年(當前時間向前推進一年)
SELECT current_timestamp - interval '1 year'
# 最近一小時(當前時間向前推一小時)
SELECT current_timestamp - interval '1 hour'
# 最近一分鐘(當前時間向前推一分鐘)
SELECT current_timestamp - interval '1 min'
# 最近60秒(當前時間向前推60秒)
SELECT current_timestamp - interval '60 second'

 

最近七天中每天的累計歷史總量:

步驟:

1)先統(tǒng)計出近7天每天的數(shù)量

2)后統(tǒng)計出7天前的累計歷史總量

3)再對第(1)步中獲取的結(jié)果進行累計求和,使用cumsum()函數(shù)

4)最后在第(3)步結(jié)果的基礎(chǔ)上,加上7天前的累計歷史總量(也就是第2步的結(jié)果)

# 趨勢
def getWeekTrends(self):
  try:
    database = DataBase()
    sql = """select s.zhongzhi_Date, s.data_num
        from (select to_char(jiaozheng_jieshushijian, 'yyyy-mm-dd') as zhongzhi_Date,
        count(1) as data_num
        from shequjz_jibenxx t
        where t.jiaozheng_jieshushijian >= to_date('{}', 'yyyy-mm-dd')
        and t.jiaozheng_jieshushijian < to_date('{}', 'yyyy-mm-dd')
        group by to_char(jiaozheng_jieshushijian, 'yyyy-mm-dd') ) s""".format(lastweek, today[:10])
    res_df = database.queryData(sql, flag=True)
 
    sql_total = """select count(1) FROM "shequjz_jibenxx" where rujiaoriqi is not null
           and zhongzhiriqi is null and to_char(rujiaoriqi,'yyyy-mm-dd')<'{}'""".format(lastweek)
    res_total = database.queryData(sql_total, count=1, flag=False)  #7131
 
    res_df['cumsum'] = res_df['data_num'].cumsum() # 累計求和
    res_df['cumsum'] = res_df['cumsum'] + res_total[0]
    res_df = res_df[['zhongzhi_date', 'cumsum']].to_dict(orient='records')
    res = {'code': 1, 'message': '數(shù)據(jù)獲取成功', 'data': res_df}
    print(res)
    return res
  except Exception as e:
    error_info = '數(shù)據(jù)獲取錯誤:{}'.format(e)
    logger.error(error_info)
    res = {'code': 0, 'message': error_info}
    return res
{'code': 1, 'message': '數(shù)據(jù)獲取成功', 'data': [
{'zhongzhi_date': '2020-11-13', 'cumsum': 7148},
{'zhongzhi_date': '2020-11-10', 'cumsum': 7161},
{'zhongzhi_date': '2020-11-11', 'cumsum': 7195},
{'zhongzhi_date': '2020-11-12', 'cumsum': 7210},
{'zhongzhi_date': '2020-11-09', 'cumsum': 7222},
{'zhongzhi_date': '2020-11-14', 'cumsum': 7229},
{'zhongzhi_date': '2020-11-15', 'cumsum': 7238}]}

 

postgresql按周統(tǒng)計數(shù)據(jù)

(實際統(tǒng)計的是 上周日到周六 7天的數(shù)據(jù)):

因為外國人的習慣是一周從周日開始,二我們中國人的習慣一周的開始是星期一,這里 -1 即將顯示日期從周日變成了周一,但是內(nèi)部統(tǒng)計的數(shù)量還是從 上周日到周六進行 統(tǒng)計的,改變的僅僅是顯示星期一的時間。

提取當前星期幾: 1

1SELECT EXTRACT(DOW FROM CURRENT_DATE)

提取當前日期: 2020-11-16 00:00:00

1SELECT CURRENT_DATE-(EXTRACT(DOW FROM CURRENT_DATE)-1||'day')::interval diffday;

按周統(tǒng)計數(shù)據(jù)一:

select to_char(jiaozheng_jieshushijian::DATE-(extract(dow from "jiaozheng_jieshushijian"::TIMESTAMP)-1||'day')::interval, 'YYYY-mm-dd') date_,
count(1) from shequjz_jibenxx where jiaozheng_jieshushijian BETWEEN '2020-01-01' and '2020-11-16'
 GROUP BY date_ order by date_

 

其中date_為一周中的第一天即星期一

按周統(tǒng)計數(shù)據(jù)二:

SELECT
to_char ( cda.jiaozheng_jieshushijian, 'yyyy ' ) || EXTRACT ( WEEK FROM cda.jiaozheng_jieshushijian ) :: INTEGER AS date_,
count( cda.id ) AS count,
cda.jiaozheng_jieshushijian AS times
FROM
shequjz_jibenxx AS cda
 
WHERE
1 = 1
AND to_char ( cda.jiaozheng_jieshushijian, 'YYYY-MM-DD HH24:MI:SS' ) BETWEEN '2020-10-01 00:00:00' AND '2020-11-12 00:00:00'
GROUP BY
date_,
times
ORDER BY
date_,
times DESC

 

postgresql中比較日期的四種方法

select * from user_info where create_date >= '2020-11-01' and create_date <= '2020-11-16'
select * from user_info where create_date between '2020-11-01' and '2020-11-16'
select * from user_info where create_date >= '2020-11-01'::timestamp and create_date < '2020-11-16'::timestamp
select * from user_info where create_date between to_date('2020-11-01','YYYY-MM-DD') and to_date('2020-11-16','YYYY-MM-DD')


13560189272
地址:廣州市天河區(qū)黃埔大道西201號金澤大廈808室
COPYRIFHT ? 2010-2020 廣州市名聯(lián)網(wǎng)絡(luò)科技有限公司 ALL RIGHTS RESERVED 粵ICP備10203057號
  • 這里是二維碼
亚洲十八**毛片,国产a久久精品一区二区三区,色综合桃花网,高清精品在线
国产精品一区二区在线看| 欧美三区在线视频| 欧美日韩一区三区四区| 国产丝袜在线精品| 26uuu色噜噜精品一区| 91浏览器入口在线观看| 青娱乐精品视频| 欧美精品一二三四| 欧美日韩精品免费| 日韩一区二区在线观看| 色哦色哦哦色天天综合| 国产精品自在欧美一区| 在线影视一区二区三区| 成人黄页在线观看| 91行情网站电视在线观看高清版| 色一情一乱一乱一91av| 久久精品男人天堂av| 国精产品一区一区三区mba视频| 大美女一区二区三区| 日韩国产高清在线| 色久综合一二码| 国产精品网站在线观看| 国产精品九色蝌蚪自拍| 久久久久88色偷偷免费| 色先锋资源久久综合| 亚洲欧美激情插| 欧美少妇性性性| 亚洲图片另类小说| 国产盗摄一区二区| 麻豆专区一区二区三区四区五区| 日韩精品亚洲一区二区三区免费| 成人av电影免费在线播放| 亚洲va韩国va欧美va| 亚洲精品欧美专区| 蜜臀91精品一区二区三区| 精品视频在线免费观看| 成人综合婷婷国产精品久久蜜臀| 一区二区三区精品在线| 欧美一卡在线观看| 美腿丝袜亚洲三区| 久久久综合激的五月天| 97精品视频在线观看自产线路二| 日本色综合中文字幕| 精品国产亚洲一区二区三区在线观看| 亚洲成a天堂v人片| 色综合久久久久久久久| 91精品在线免费观看| 日本亚洲一区二区| 综合欧美一区二区三区| 91精品国产91综合久久蜜臀| 六月丁香综合在线视频| 亚洲在线视频网站| 欧美日本一区二区三区四区| 日韩精品一区二区三区三区免费| 欧美日韩激情在线| 亚洲午夜在线电影| 久久综合九色综合欧美就去吻| 不卡区在线中文字幕| 99久久精品国产精品久久| 国产精品传媒入口麻豆| 26uuu色噜噜精品一区| 亚洲午夜精品一区二区三区他趣| 日韩视频在线你懂得| 午夜免费欧美电影| 成人午夜精品一区二区三区| 91麻豆精品久久久久蜜臀| 久久久久久99精品| 亚洲成av人片在www色猫咪| 欧美三级日韩三级国产三级| 色婷婷av久久久久久久| 日韩欧美你懂的| 亚洲国产成人91porn| 色婷婷香蕉在线一区二区| 久久精品在线观看| 无码av中文一区二区三区桃花岛| 欧美猛男gaygay网站| 4438亚洲最大| 中文字幕在线不卡一区二区三区| 在线欧美日韩国产| 蜜臀精品一区二区三区在线观看| 日日夜夜精品视频免费| 国产精品福利电影一区二区三区四区| 亚洲精品美国一| 26uuu久久综合| 日韩一级片在线播放| 精品国产一区二区三区久久久蜜月| 26uuu色噜噜精品一区| 色综合色综合色综合色综合色综合| 亚洲成人一二三| 亚洲欧美日韩人成在线播放| 国产精品国产三级国产aⅴ原创| 337p亚洲精品色噜噜噜| 久久国产乱子精品免费女| 欧美伦理电影网| 亚洲色图一区二区三区| 日韩一卡二卡三卡国产欧美| 精品综合久久久久久8888| 亚洲狠狠爱一区二区三区| 在线观看日韩av先锋影音电影院| 日韩精品一区二区三区三区免费| 国产精品成人一区二区三区夜夜夜| 成人高清伦理免费影院在线观看| 一本色道亚洲精品aⅴ| 1024精品合集| 在线亚洲一区观看| 午夜成人在线视频| fc2成人免费人成在线观看播放| 91美女片黄在线观看| 蜜臀va亚洲va欧美va天堂| 久久婷婷国产综合精品青草| 91在线视频免费观看| va亚洲va日韩不卡在线观看| 中文字幕亚洲综合久久菠萝蜜| 精品久久久久久久久久久久久久久| 欧美精品一区二区不卡| 日本国产一区二区| www.久久久久久久久| 国产呦精品一区二区三区网站| 亚洲一区二区精品3399| 久久国产尿小便嘘嘘| 欧美极品另类videosde| 99精品黄色片免费大全| 免费成人在线观看视频| 一区二区国产视频| 亚洲a一区二区| 99re成人在线| 日韩av在线播放中文字幕| 激情五月婷婷综合| 精品免费99久久| 国产欧美1区2区3区| 亚洲电影一级黄| 首页欧美精品中文字幕| 亚洲第一精品在线| 中文欧美字幕免费| 久久综合久久鬼色| 亚洲成人免费在线观看| 亚洲乱码国产乱码精品精小说| 国产精品乱人伦中文| 国产精品乱人伦中文| 奇米精品一区二区三区四区| 国产精品国产三级国产普通话99| 91精品免费观看| 日韩av中文在线观看| 久久久亚洲综合| 日本亚洲最大的色成网站www| bt欧美亚洲午夜电影天堂| 成人av午夜电影| 宅男在线国产精品| 一区二区三区四区国产精品| 日韩精品自拍偷拍| 国产精品天美传媒| 日韩三级av在线播放| 日韩久久免费av| 婷婷夜色潮精品综合在线| 国产一区999| 国产精品美女久久久久av爽李琼| 欧美三级视频在线| 国产美女久久久久| 国产日韩欧美激情| 久久av资源站| 欧美美女一区二区三区| 国产一区二区视频在线播放| 中文字幕一区av| 99re亚洲国产精品| 91精品国产综合久久久久久| 亚洲精品亚洲人成人网在线播放| 中文字幕亚洲区| 国产精品美女久久久久久久网站| 91欧美一区二区| 欧美国产日韩精品免费观看| 777a∨成人精品桃花网| 中文字幕亚洲区| 日韩免费在线观看| 久久久久久久久久久久久夜| 亚洲成人av福利| 国产欧美日本一区视频| 99久久久久久| 亚洲色图视频网站| 日韩成人伦理电影在线观看| 97久久超碰国产精品| 日韩欧美一区二区免费| 亚洲激情六月丁香| 日本一区二区三区dvd视频在线| 亚洲综合在线第一页| 欧美一区二区视频在线观看2020| 国产成都精品91一区二区三| 久久精品亚洲一区二区三区浴池| 国产精品午夜在线观看| 欧美mv和日韩mv国产网站| 久久久av毛片精品| 免费成人深夜小野草| 色8久久人人97超碰香蕉987| 在线观看欧美黄色| 久久嫩草精品久久久精品一| 日韩电影一区二区三区| 91麻豆成人久久精品二区三区| 欧美激情一区在线观看| 国产在线精品免费av| 亚洲人精品午夜| 日韩精品欧美精品|