1、計算佔比
--保留小數點兩位,拼接%
round
((a2.uv-a1.uv)
/a1.uv::numeric
*100,2
)||'%'as ratio
2、計算儲存
--檢視外部表的儲存大小
select pg_size_pretty(pg_relation_size(
'ods.ods_dev_device_info_d_ext_20191225'
))
3、decode條件判讀
--單條件的字串對比case when
decode(carrier_id,-1
,public
.p_pub_get_randon_carrier_id(
) :: integer,4
,public
.p_pub_get_randon_carrier_id(
):: integer
,carrier_id) carrier_id;
decode(expression,
value
,return[,
value
,return].
..[,
default
])
4、包含指定欄位的表的查詢
-- 獲取非分割槽表
select table_name,pg_size_pretty(pg_relation_size(
'bds.'
|| table_name)
)from information_schema.
columns
where table_schema =
'bds'
and column_name =
'device_id'
and table_name not
like
'%_1_prt_%'
and table_name not
like
'%_ext_%'
and table_name notin(
select
distinct split_part(table_name,
'_1_prt_',1
)from information_schema.
columns
where table_schema =
'bds'
and column_name =
'device_id'
and table_name like
'%_1_prt_%'
)and pg_relation_size(
'bds.'
|| table_name)
>
0order
by pg_relation_size(
'bds.'
|| table_name)
desc
-- 獲取分割槽表
select
split_part(table_name,
'_1_prt_',1
),min(table_name)
,max
(table_name)
,count(1
) cnt
from information_schema.
columns
where table_schema =
'bds'
and column_name =
'device_id'
and table_name like
'%_1_prt_%'
and pg_relation_size(
'bds.'
|| table_name)
>
0groupby1
order
by cnt desc
3、delete table
--使用 delete from 操作一張表即時沒有限制條件,依舊很慢,而且占用大量io,建議使用truncate,因為它不做表掃瞄
delete
from
table
--truncate在在操作的每個表上請求乙個access exclusive鎖, 這種鎖會阻塞表上的所有其他併發操作。如果需要對乙個表併發訪問, 那麼應該使用delete命令
truncate
table
4、檔案匯出
psql -h192.
168.1
.1>
/data1_4t/
data
pg_dump -h192.
168.1.1.
sql
5、去重表中重複資料
-- 剔除重複行的資料轉存到新錶
select
distinct
*-- 將原表表重新命名
alter
-- 重新建立原表
複製貼上建表語句,重新建立原表
-- 將舊表表重新命名
insert
select
*
總結 日常總結
最近變得浮躁了,學不進了,那就寫總結吧。關於刷題 從去年十一月份到現在,感覺唯一堅持的意見事情就是刷力扣了。四個多月,寫了六百多道題,大概有四五題一天,然後也在堅持參加周賽。很多時候,有些事情成了習慣,那麼也就不需要去堅持了。比如說現在,每天都是先把每日一題和劍指 offer 的任務完成了再開始做其...
日常學習總結
關於vb中的把字串 日期型 數值型 賦值給某個變數的寫法 eg dim m1,r 此處我並不清楚 m1 到底是什麼型別 所以vb會自動匹配其應該所屬的型別,這是vb的一點強大之處 m select fitemid from t item where fitemclassid 3 and fnumbe...
Android日常總結
個人在此記錄一下.2,有時候 出現了異常,但是androidstudio並不列印錯誤資訊.這時候,我們可以通過斷點來除錯,如果斷點走到某一步了,不繼續往下面走,說名剛剛的那行 有問題,比如說textview.settext 1 textview設定乙個int值,這時系統可能沒有列印錯誤日誌.3,在l...