PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法
这篇“PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法”文章吧。
1、用SQL查询最近N天的数据思路:先获取当前的时间,然后更具当前时间去减去对应的天数,就可以得到需要的天数了。然后用这些天数作为条件,然后即可查询出需要多少天的数据了。
--获取当前时间SELECTCURRENT_TIMESTAMP;--或SELECTnow();selectCURRENT_TIMESTAMP::DATEAS"当前日期";SELECTCURRENT_DATE;selectCURRENT_TIMESTAMP::TIMEAS"当前时间";SELECTCURRENT_TIME;
最近N天
--最近7天SELECTDATE(T)ASDAYFROMgenerate_series((CURRENT_TIMESTAMP-INTERVAL'6day')::DATE,CURRENT_TIMESTAMP::DATE,'1days')AST;
当然6 day、1 day这些也是可修改的;
--统计最近30、7、昨天、今天的数据SELECTcount(*)ASAllData,count(*)filter(WHEREcreate_timeBETWEEN(SELECTCURRENT_DATE-INTERVAL'30day')ANDCURRENT_DATE)ASLast30DayData,count(*)filter(WHEREcreate_timeBETWEEN(SELECTCURRENT_DATE-INTERVAL'7day')ANDCURRENT_DATE)ASLast7DayData,count(*)filter(WHEREcreate_timeBETWEEN(SELECTCURRENT_DATE-INTERVAL'1day')ANDCURRENT_DATE)ASYesterdayData,count(*)filter(WHEREcreate_time>=CURRENT_DATE)AStodayAddDataFROMtable_name;
实例如下:查询lic_plate字段不为空和为空的最近7天的数据
--查询lic_plate字段不为空的最近7天的数据selectcount(tn.lic_plate)ASnumber,tn.create_timeASpercentagefromtable_nametnwheretn.create_timein(SELECTDATE(T)ASDAYFROMgenerate_series((CURRENT_TIMESTAMP-INTERVAL'6day')::DATE,CURRENT_TIMESTAMP::DATE,'1days')AST)ANDlic_plateisnotnullgroupbytn.create_timeorderbytn.create_time;--查询lic_plate字段为空的最近7天的数据selectcount(id)ASnumber,CSQV.create_timeASpercentagefrom(select*fromtable_nametnwherelic_plateisnull)ASCSQVwhereCSQV.create_timein(SELECTDATE(T)ASDAYFROMgenerate_series((CURRENT_TIMESTAMP-INTERVAL'6day')::DATE,CURRENT_TIMESTAMP::DATE,'1days')AST)groupbyCSQV.create_time;2、用SQL语句实现替换字段里的内容
思路:使用替换函数替换即可
--替换语句update表名set替换字段名=replace(替换字段名,'被替换内容','替换内容');
实例如下:将 my_test 表的 test_content字段内容进行替换
updatemy_testsettest_content=replace(test_content,'1','18');
替换函数:如果没有可以创建,创建函数如下:
--replacealloccurrencesinstringofold_substrwithnew_substr--auto-generateddefinitioncreatefunctionreplace(text,text,text)returnstextimmutablestrictcost1languageinternalas$$begin--missingsourcecodeend;$$;commentonfunctionreplace(text,text,text)is'replacealloccurrencesinstringofold_substrwithnew_substr';3、SQL将查询结果赋值
--查询表数据,给test_content字段并赋值selecttest_id,test_code,'测试数据'test_contentfrommy_test;--查询表数据给自定义ABCD字段并赋值selecttest_id,test_code,'测试数据'ABCDfrommy_test;4、SQL查询字段内容为 NULL值时候赋值
selecttest_id,test_code,COALESCE(test_content,'测试数据')ABCDfrommy_test;--||selecttest_id,test_code,CASEWHENtest_contentISNOTNULLTHENtest_contentELSE'测试数据'ENDABCDfrommy_test;
以上就是关于“PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。