婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PostgreSQL完成按月累加的操作

PostgreSQL完成按月累加的操作

熱門標(biāo)簽:電銷機(jī)器人能補(bǔ)救房產(chǎn)中介嗎 廣州電銷機(jī)器人公司招聘 400電話申請客服 地圖標(biāo)注要花多少錢 移動外呼系統(tǒng)模擬題 電話機(jī)器人怎么換人工座席 濟(jì)南外呼網(wǎng)絡(luò)電話線路 江蘇400電話辦理官方 天津開發(fā)區(qū)地圖標(biāo)注app

背景

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

方法一、使用自關(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ù)場景。

補(bǔ)充:PostgreSQL實(shí)現(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') || '點(diǎn)' 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') || '點(diǎn)') 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ù)進(jìn)行傳參即可。

補(bǔ)充:

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

select 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'
# 最近一個月(當(dāng)前時間向前推進(jìn)一個月)
SELECT current_timestamp - interval '1 month'
# 最近一年(當(dāng)前時間向前推進(jìn)一年)
SELECT current_timestamp - interval '1 year'
# 最近一小時(當(dāng)前時間向前推一小時)
SELECT current_timestamp - interval '1 hour'
# 最近一分鐘(當(dāng)前時間向前推一分鐘)
SELECT current_timestamp - interval '1 min'
# 最近60秒(當(dāng)前時間向前推60秒)
SELECT current_timestamp - interval '60 second'

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

步驟:

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

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

3)再對第(1)步中獲取的結(jié)果進(jìn)行累計求和,使用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ù)

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

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

提取當(dāng)前星期幾: 1

SELECT EXTRACT(DOW FROM CURRENT_DATE)

提取當(dāng)前日期: 2020-11-16 00:00:00

SELECT 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')

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgreSql分組統(tǒng)計數(shù)據(jù)的實(shí)現(xiàn)代碼
  • Postgresql 存儲過程(plpgsql)兩層for循環(huán)的操作
  • postgresql 循環(huán)函數(shù)的簡單實(shí)現(xiàn)操作
  • 淺談PostgreSQL和SQLServer的一些差異
  • 解決PostgreSQL 執(zhí)行超時的情況
  • postgresql 中的幾個 timeout參數(shù) 用法說明

標(biāo)簽:杭州 辛集 溫州 榆林 海西 昭通 寶雞 濮陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PostgreSQL完成按月累加的操作》,本文關(guān)鍵詞  PostgreSQL,完成,按月,累加,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PostgreSQL完成按月累加的操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于PostgreSQL完成按月累加的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    99国产精品视频免费观看| 精品一区二区三区在线观看国产| 国产精品系列在线| 人人精品人人爱| 日韩三区在线观看| 久久精品国产一区二区| 欧美疯狂性受xxxxx喷水图片| 亚洲综合成人网| 欧美大片在线观看一区二区| 捆绑调教一区二区三区| 欧美国产亚洲另类动漫| 91麻豆精品秘密| 亚洲卡通欧美制服中文| 日本大香伊一区二区三区| 亚洲午夜激情av| 日韩一区二区影院| 成人激情午夜影院| 亚洲第一狼人社区| 精品国产一区二区亚洲人成毛片| 经典三级视频一区| 自拍偷在线精品自拍偷无码专区| 91啪九色porn原创视频在线观看| 亚洲va韩国va欧美va精品| 2020国产精品| 欧洲国内综合视频| 国产精品夜夜嗨| 亚洲在线观看免费视频| 国产喂奶挤奶一区二区三区| 欧美日韩精品专区| 成人高清在线视频| 亚洲成a人v欧美综合天堂下载| 久久久国产精华| 欧美美女黄视频| 波波电影院一区二区三区| 奇米色一区二区三区四区| 最新不卡av在线| 2021中文字幕一区亚洲| 欧美日韩免费一区二区三区| 国产成人在线色| 蜜桃精品在线观看| 天天av天天翘天天综合网色鬼国产| 亚洲精品一线二线三线| 欧美日韩国产三级| 99国产欧美另类久久久精品| 免费在线观看视频一区| 亚洲人成网站精品片在线观看| 欧美大胆一级视频| 欧美伊人久久久久久午夜久久久久| 国产一区二区三区国产| 捆绑调教一区二区三区| 一区二区成人在线| 国产欧美日韩在线| 欧美精品黑人性xxxx| 色欧美88888久久久久久影院| 国产乱妇无码大片在线观看| 舔着乳尖日韩一区| 亚洲永久精品大片| 亚洲精品视频免费看| 国产精品伦理一区二区| 久久久久久免费网| 欧美成人高清电影在线| 99久久99久久综合| 成人精品在线视频观看| 国产一区二区在线视频| 九一九一国产精品| 精一区二区三区| 日韩电影一区二区三区四区| 午夜影院在线观看欧美| 亚洲一二三四久久| 亚洲地区一二三色| 日韩vs国产vs欧美| 蜜臀久久久久久久| 亚洲第一精品在线| 免费在线观看精品| 免费观看日韩av| 国产一区在线精品| 国产一区二区三区四区在线观看| 日本三级亚洲精品| 九九国产精品视频| 成人高清在线视频| 99re成人在线| 欧美久久久久免费| 日韩精品一区二区三区在线播放| 日韩精品最新网址| 26uuu另类欧美| 中文字幕亚洲视频| 一区二区免费看| 亚洲va欧美va天堂v国产综合| 琪琪久久久久日韩精品| 国产成人精品在线看| 成人激情免费网站| 欧美视频一区二区三区四区| 欧美精品久久一区| 国产午夜三级一区二区三| 国产精品国产三级国产| 天堂久久久久va久久久久| 日本成人超碰在线观看| 懂色av中文字幕一区二区三区| 99国产一区二区三精品乱码| 欧美日韩不卡在线| 久久综合久久综合久久综合| 日韩久久一区二区| 日韩电影在线一区| av在线不卡网| 久久久久高清精品| 亚洲综合久久av| 国内精品不卡在线| 91啪九色porn原创视频在线观看| 91麻豆精品国产自产在线观看一区 | 91精品蜜臀在线一区尤物| 精品国产91洋老外米糕| 亚洲精品中文字幕乱码三区| 美国毛片一区二区| 色婷婷亚洲婷婷| 久久这里只有精品6| 亚洲国产一区二区三区| 国产成人啪免费观看软件| 欧美一卡二卡在线| 亚洲男女毛片无遮挡| 韩国欧美国产1区| 欧美久久高跟鞋激| 综合久久国产九一剧情麻豆| 国产主播一区二区三区| 91精品国产91久久综合桃花| 国产精品乱人伦| 国内精品伊人久久久久av一坑| 91美女片黄在线观看| 国产亚洲综合色| 久久精品免费看| 日韩视频一区在线观看| 午夜影院在线观看欧美| 国产自产视频一区二区三区| 91小视频免费观看| 中文字幕精品—区二区四季| 久久国产精品99精品国产| 9191国产精品| 国产丝袜欧美中文另类| 丁香亚洲综合激情啪啪综合| 日韩欧美国产三级电影视频| 丝袜诱惑亚洲看片| 欧美一级黄色大片| 亚洲国产精品影院| 在线看一区二区| 亚洲一区二区三区国产| 色香蕉成人二区免费| 中文字幕av一区二区三区免费看| 久久精品国产99国产| 精品电影一区二区三区| 国模娜娜一区二区三区| 精品美女一区二区三区| 国产在线精品国自产拍免费| 国产亚洲精品中文字幕| 不卡视频在线看| 一区二区三区鲁丝不卡| 欧美日韩午夜在线| 欧美a一区二区| 国产精品久久一级| 91精品办公室少妇高潮对白| 亚洲成va人在线观看| 日韩女优制服丝袜电影| 国产精品综合久久| 亚洲视频在线观看三级| 欧美日本精品一区二区三区| 青娱乐精品在线视频| 久久久精品国产免大香伊| 99久久精品免费观看| 午夜伦理一区二区| 久久久欧美精品sm网站| 91国偷自产一区二区三区观看| 亚洲成人精品一区| 久久综合精品国产一区二区三区| 国产成人免费视| 亚洲视频中文字幕| 欧美老肥妇做.爰bbww视频| 午夜av电影一区| 2020国产精品| 在线欧美小视频| 九九视频精品免费| 国产精品国产三级国产三级人妇 | 正在播放一区二区| 久热成人在线视频| |精品福利一区二区三区| 色综合天天综合色综合av| 亚洲国产精品一区二区久久| 国产偷国产偷精品高清尤物| 色婷婷一区二区| 国内精品伊人久久久久av一坑| 国产精品传媒视频| 欧美成人三级在线| 成人免费av资源| 精品制服美女丁香| 国产欧美日韩不卡| 欧美一级在线免费| 色综合欧美在线视频区| 亚洲一区二区三区影院| 中文字幕成人av| 亚洲精品一区二区在线观看| 欧美一区二区观看视频| 欧美色综合久久| 成人av影视在线观看|