PGSQL查詢最近N天的數(shù)據(jù)及SQL語(yǔ)句實(shí)現(xiàn)替換字段內(nèi)容
1、用SQL查詢最近N天的數(shù)據(jù)
思路:先獲取當(dāng)前的時(shí)間,然后更具當(dāng)前時(shí)間去減去對(duì)應(yīng)的天數(shù),就可以得到需要的天數(shù)了。然后用這些天數(shù)作為條件,然后即可查詢出需要多少天的數(shù)據(jù)了。
-- 獲取當(dāng)前時(shí)間 SELECT CURRENT_TIMESTAMP; -- 或 SELECT now(); select CURRENT_TIMESTAMP :: DATE AS "當(dāng)前日期"; SELECT CURRENT_DATE; select CURRENT_TIMESTAMP :: TIME AS "當(dāng)前時(shí)間"; SELECT CURRENT_TIME;
最近N天
-- 最近7天 SELECT DATE( T ) AS DAY FROM generate_series ( ( CURRENT_TIMESTAMP - INTERVAL '6 day' ) :: DATE,CURRENT_TIMESTAMP :: DATE, '1 days' ) AS T ;
當(dāng)然6 day、1 day這些也是可修改的;
--統(tǒng)計(jì)最近30、7、昨天、今天的數(shù)據(jù) SELECT count(*) AS AllData, count(*) filter ( WHERE create_time BETWEEN ( SELECT CURRENT_DATE - INTERVAL '30 day' ) AND CURRENT_DATE ) AS Last30DayData, count(*) filter ( WHERE create_time BETWEEN ( SELECT CURRENT_DATE - INTERVAL '7 day' ) AND CURRENT_DATE ) AS Last7DayData, count(*) filter ( WHERE create_time BETWEEN ( SELECT CURRENT_DATE - INTERVAL '1 day' ) AND CURRENT_DATE ) AS YesterdayData, count(*) filter ( WHERE create_time >= CURRENT_DATE ) AS todayAddData FROM table_name;
實(shí)例如下:查詢lic_plate字段不為空和為空的最近7天的數(shù)據(jù)
-- 查詢lic_plate字段不為空的最近7天的數(shù)據(jù) select count(tn.lic_plate) AS number,tn.create_time AS percentage from table_name tn where tn.create_time in (SELECT DATE(T) AS DAY FROM generate_series((CURRENT_TIMESTAMP - INTERVAL '6 day') :: DATE, CURRENT_TIMESTAMP :: DATE,'1 days') AS T) AND lic_plate is not null group by tn.create_time order by tn.create_time; -- 查詢lic_plate字段為空的最近7天的數(shù)據(jù) select count(id) AS number,CSQV.create_time AS percentage from (select * from table_name tn where lic_plate is null) AS CSQV where CSQV.create_time in (SELECT DATE(T) AS DAY FROM generate_series((CURRENT_TIMESTAMP - INTERVAL '6 day') :: DATE, CURRENT_TIMESTAMP :: DATE,'1 days') AS T) group by CSQV.create_time;
2、用SQL語(yǔ)句實(shí)現(xiàn)替換字段里的內(nèi)容
思路:使用替換函數(shù)替換即可
-- 替換語(yǔ)句 update 表名 set 替換字段名 = replace(替換字段名,'被替換內(nèi)容','替換內(nèi)容');
實(shí)例如下:將 my_test 表的 test_content 字段內(nèi)容進(jìn)行替換
update my_test set test_content = replace(test_content,'1','18');
替換函數(shù):如果沒有可以創(chuàng)建,創(chuàng)建函數(shù)如下:
-- replace all occurrences in string of old_substr with new_substr -- auto-generated definition create function replace(text, text, text) returns text immutable strict cost 1 language internal as $$begin -- missing source code end;$$; comment on function replace(text, text, text) is 'replace all occurrences in string of old_substr with new_substr';
3、SQL將查詢結(jié)果賦值
--查詢表數(shù)據(jù),給test_content字段并賦值 select test_id,test_code,'測(cè)試數(shù)據(jù)' test_content from my_test; --查詢表數(shù)據(jù)給自定義 ABCD字段 并賦值 select test_id,test_code,'測(cè)試數(shù)據(jù)' ABCD from my_test;
4、SQL查詢字段內(nèi)容為 NULL值時(shí)候賦值
select test_id,test_code,COALESCE(test_content,'測(cè)試數(shù)據(jù)') ABCD from my_test; -- || select test_id,test_code, CASE WHEN test_content IS NOT NULL THEN test_content ELSE '測(cè)試數(shù)據(jù)' END ABCD from my_test;
總結(jié)
到此這篇關(guān)于PGSQL查詢最近N天的數(shù)據(jù)及SQL語(yǔ)句實(shí)現(xiàn)替換字段內(nèi)容的文章就介紹到這了,更多相關(guān)PGSQL查詢最近N天數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02PostgreSQL upsert(插入更新)數(shù)據(jù)的操作詳解
這篇文章主要介紹了PostgreSQL upsert(插入更新)教程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01PostgreSQL如何查看事務(wù)所占有的鎖實(shí)操指南
這篇文章主要給大家介紹了關(guān)于PostgreSQL如何查看事務(wù)所占有鎖的相關(guān)資料,文中通過(guò)代碼以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PostgreSQL具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10postgresql修改完端口后直接psql連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)的解決
這篇文章主要介紹了postgresql修改完端口后直接psql連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Postgresql 數(shù)據(jù)庫(kù) varchar()字符占用多少字節(jié)介紹
這篇文章主要介紹了Postgresql 數(shù)據(jù)庫(kù) varchar()字符占用多少字節(jié)介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12PostgreSQL?Log日志模塊原理及存在的問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于PostgreSQL?Log日志模塊原理及存在的問(wèn)題的相關(guān)資料,先日志在我們開發(fā)過(guò)程中占據(jù)了一個(gè)非常重要的地位,是開發(fā)和運(yùn)維管理之間的橋梁,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02Postgresql數(shù)據(jù)庫(kù)中的json類型字段使用示例詳解
JSON的主要用于在服務(wù)器與web應(yīng)用之間傳輸數(shù)據(jù),這篇文章主要介紹了Postgresql數(shù)據(jù)庫(kù)中的json類型字段使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02PostgreSQL實(shí)時(shí)查看數(shù)據(jù)庫(kù)實(shí)例正在執(zhí)行的SQL語(yǔ)句實(shí)例詳解
在任何數(shù)據(jù)庫(kù)中,分析和優(yōu)化SQL的執(zhí)行,最重要的工作就是執(zhí)行計(jì)劃的解讀,而說(shuō)到執(zhí)行計(jì)劃得先了解postgresql的查詢執(zhí)行過(guò)程,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL實(shí)時(shí)查看數(shù)據(jù)庫(kù)實(shí)例正在執(zhí)行的SQL語(yǔ)句的相關(guān)資料,需要的朋友可以參考下2023-01-01