MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:

2017年6月14日 星期三

PostgreSQL 9.x 原生的 Partitioned Table 設置

第十版的 Postgres 將引進原生的 Partitioned Table 語法。所以要快點把舊的 Partitioned Table 設置筆記快快貼出來~~

當然,這些語法在 PGSQL 10 也還是能用的!此外,由於 PGSQL 10 雖然在 postgres_fdw 提供 Aggregation Pushdown,但針對 Partitioned Table 的外部小資料表(Foreign Partitions)還沒有 Aggregation Pushdown 的執行計畫,因此像這樣 DIY 的 Partitioned Table 在 PGSQL 10 還是有他的一點用途的~

最後提醒一下,EDB 的 Postgres 企業版也有針對 Oracle 相容的 Partitioned Table 語法;就目前(2017 年六月)的資料看來,企業版還是功能還是比較多一些。

2017年6月1日 星期四

在 Postgres 自訂 Aggregation 函數 — 把多筆字串併成同一列

Aggregation 函數,指的是一個或多個欄位的把多筆資料一起處理,映射成一個值的函數,例如加總 SUM() 或平均 AVG() 等函數。

除了內建的 Aggregation 之外,Postgres 提供自訂 Aggregation 的方式,可以自訂自己需要的條件的 Aggregation。

2017年5月2日 星期二

在 PGSQL 裡面用 Hex code 輸入正體中文字

之前有遇到需要使用 Big5/UTF8 的十六進位內碼,輸入資料到 Postgres 裡面。
在此作一些使用的總結

2017年4月10日 星期一

停止卡住的 Postgres Session 的 SQL 指令

在 Postgres 遇到有奇怪的 Session 執行「好像」卡很久的 SQL 查詢指令,想要先把它停下來,再找人來罵一罵~,怎麼處理呢?

2017年4月4日 星期二

在 Postgres 把同一欄的資料,併成同一列的逗號分隔值呈現

雖然不清楚這種功能要作什麼,還是紀錄一下~

在 Oracle 資料庫裡面,要把同一欄位的不同筆資料,用逗號分隔的方式輸出,有以下兩種方法
(一) 用 XML 處理,比較像繞遠路
SQL> select DEPARTMENT_ID, 
   rtrim (xmlagg (xmlelement (e, FIRST_NAME || ',')).extract ('//text()'), ',') enames 
 from EMPLOYEES 
 group by DEPARTMENT_ID;

DEPARTMENT_ID
-------------
ENAMES
--------------------------------------------------------------------------------
           10
Jennifer

           20
Michael,Pat

           30
Den,Karen,Guy,Sigal,Shelli,Alexander


DEPARTMENT_ID
-------------
ENAMES
--------------------------------------------------------------------------------
           40
Susan

           50
Matthew,Douglas,Donald,Kevin,Alana,Vance,Samuel,Britney,Sarah,Randall,Timothy,Jennifer,Kelly,Anthony,Julia,Alexis,Nandita,Girard,Martha,Jean,Winston,Peter,Randall,Curtis,Trenna,Joshua,John,Stephen,Renske,Hazel,Ki,Michael,Jason,TJ,James,Mozhe,Laura,Steven,James,Irene,Julia,Kevin,Shanta,Payam,Adam


DEPARTMENT_ID
-------------
ENAMES
--------------------------------------------------------------------------------
           60
Alexander,Diana,Valli,David,Bruce

           70
Hermann

           80
John,Charles,Jack,Jonathon,Alyssa,Ellen,Sundita,Elizabeth,William,Tayler,Harrison,Lisa,Amit,Sundar,David,Mattea,Danielle,Clara,Sarath,Louise,Lindsey,Allan,Patri

DEPARTMENT_ID
-------------
ENAMES
--------------------------------------------------------------------------------
ck,Janette,Oliver,Nanette,Christopher,Peter,David,Peter,Eleni,Gerald,Alberto,Karen
           90
Steven,Lex,Neena
          100
Nancy,Luis,Jose Manuel,Ismael,John,Daniel

DEPARTMENT_ID
-------------
ENAMES
--------------------------------------------------------------------------------
          110
Shelley,William

Kimberely

12 rows selected.

或是
(二) 用 listagg() 函數處理
SQL> SELECT
   DEPARTMENT_ID,
   listagg (FIRST_NAME, ',') 
WITHIN GROUP 
(ORDER BY FIRST_NAME) FIRST_NAME 
FROM EMPLOYEES 
GROUP BY DEPARTMENT_ID;


DEPARTMENT_ID
-------------
FIRST_NAME
--------------------------------------------------------------------------------
           10
Jennifer

           20
Michael,Pat

           30
Alexander,Den,Guy,Karen,Shelli,Sigal


DEPARTMENT_ID
-------------
FIRST_NAME
--------------------------------------------------------------------------------
           40
Susan

           50
Adam,Alana,Alexis,Anthony,Britney,Curtis,Donald,Douglas,Girard,Hazel,Irene,James,James,Jason,Jean,Jennifer,John,Joshua,Julia,Julia,Kelly,Kevin,Kevin,Ki,Laura,Martha,Matthew,Michael,Mozhe,Nandita,Payam,Peter,Randall,Randall,Renske,Samuel,Sarah,Shanta,Stephen,Steven,TJ,Timothy,Trenna,Vance,Winston


DEPARTMENT_ID
-------------
FIRST_NAME
--------------------------------------------------------------------------------
           60
Alexander,Bruce,David,Diana,Valli

           70
Hermann
           80
Alberto,Allan,Alyssa,Amit,Charles,Christopher,Clara,Danielle,David,David,Eleni,Elizabeth,Ellen,Gerald,Harrison,Jack,Janette,John,Jonathon,Karen,Lindsey,Lisa,Lou

DEPARTMENT_ID
-------------
FIRST_NAME
--------------------------------------------------------------------------------
ise,Mattea,Nanette,Oliver,Patrick,Peter,Peter,Sarath,Sundar,Sundita,Tayler,William
           90
Lex,Neena,Steven
          100
Daniel,Ismael,John,Jose Manuel,Luis,Nancy

DEPARTMENT_ID
-------------
FIRST_NAME
--------------------------------------------------------------------------------
          110
Shelley,William

Kimberely

12 rows selected.

上面這兩方式在 EDB 都還沒支援(截至 9.6),那應該如何處理?

Postgres 輸入/輸出中文日期

如何從 PostgreSQL 資料庫裡面的 Timestamp 資料型態,變出中文日期格式?