这篇“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语句实现替换字段内容的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。