久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

PGSQL怎么查詢最近N天的數據及SQL語句實現替換字段內容的方法

142次閱讀
沒有評論

共計 2788 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇“PGSQL 怎么查詢最近 N 天的數據及 SQL 語句實現替換字段內容的方法”文章的知識點大部分人都不太理解,所以丸趣 TV 小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“PGSQL 怎么查詢最近 N 天的數據及 SQL 語句實現替換字段內容的方法”文章吧。

1、用 SQL 查詢最近 N 天的數據

思路:先獲取當前的時間,然后更具當前時間去減去對應的天數,就可以得到需要的天數了。然后用這些天數作為條件,然后即可查詢出需要多少天的數據了。

--  獲取當前時間
SELECT CURRENT_TIMESTAMP;
--  或
SELECT now();
select CURRENT_TIMESTAMP :: DATE AS  當前日期 
SELECT CURRENT_DATE;
select CURRENT_TIMESTAMP :: TIME AS  當前時間 
SELECT CURRENT_TIME;

最近 N 天

--  最近 7 天
SELECT DATE( T ) AS DAY
generate_series ( ( CURRENT_TIMESTAMP - INTERVAL  6 day  ) :: DATE,CURRENT_TIMESTAMP :: DATE,  1 days  ) AS T ;

當然 6 day、1 day 這些也是可修改的;

-- 統計最近 30、7、昨天、今天的數據
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 
 table_name;

實例如下:查詢 lic_plate 字段不為空和為空的最近 7 天的數據

--  查詢 lic_plate 字段不為空的最近 7 天的數據
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 天的數據
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 語句實現替換字段里的內容

思路:使用替換函數替換即可

--  替換語句
update  表名  set  替換字段名  = replace(替換字段名, 被替換內容 , 替換內容 

實例如下:將 my_test 表的 test_content  字段內容進行替換

update my_test set test_content = replace(test_content, 1 , 18

替換函數:如果沒有可以創建,創建函數如下:

-- 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
$$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 將查詢結果賦值

-- 查詢表數據,給 test_content 字段并賦值
select test_id,test_code, 測試數據  test_content from my_test;
-- 查詢表數據給自定義  ABCD 字段   并賦值
select test_id,test_code, 測試數據  ABCD from my_test;

4、SQL 查詢字段內容為 NULL 值時候賦值

select test_id,test_code,COALESCE(test_content, 測試數據) ABCD from my_test;
-- ||
select test_id,test_code,
 CASE
 WHEN test_content IS NOT NULL THEN test_content
 ELSE  測試數據 
 END ABCD from my_test;

以上就是關于“PGSQL 怎么查詢最近 N 天的數據及 SQL 語句實現替換字段內容的方法”這篇文章的內容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計2788字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 个旧市| 密山市| 江山市| 大洼县| 那坡县| 九龙县| 中山市| 扎囊县| 庆阳市| 盐津县| 临高县| 峡江县| 杨浦区| 三河市| 宁陕县| 平原县| 苏尼特右旗| 浏阳市| 顺昌县| 乌兰察布市| 抚远县| 海南省| 孙吴县| 洞头县| 龙里县| 宣武区| 太湖县| 灌云县| 盐亭县| 黎平县| 林芝县| 绿春县| 南漳县| 隆安县| 宁化县| 闽侯县| 卢龙县| 贺兰县| 白玉县| 建平县| 塔城市|