MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

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

2017年7月10日 星期一

在 PostgreSQL 產生次數分配圖表的 SQL 語法

在 Excel 或 Libreoffice Calc 中,可以用資料畫次數分配長條圖(Frequency Distribution Chart);那在 PostgreSQL 要怎麼用 SQL 語法達成?

2017年7月4日 星期二

在 PostgreSQL 裡面產生樞紐分析表

樞紐分析表(Pivot Table)是什麼?在 Excel 裡面有提供這樣的東西,看似是被廣泛的使用的基本工具。

依照維基百科的說明,樞紐分析表是一種用來呈現資料性質總結(如計數,加總,平均或其他 Aggregation )的工具。

而一個樞紐表包含三個部份:

  1. 垂直欄位:這個欄位中,包含相異的品項。作為樞紐表的 Y 軸
  2. 水平欄位:和垂直欄位一樣,也包含相異的品項,但內容會挑跟垂直欄位不相同的項目來用。作為樞紐表的 X 軸
  3. X/Y 張開的表格之間:為要呈現的總結資訊。也就是,固定 (X, Y) 條件下,所得的 Aggregation 資訊(例如,固定 (X,Y) 條件後的資料筆數,或是固定 (X, Y) 條件下,其他欄位資料的平均值)
  4. (選擇性)對 X 軸 / Y 軸作小計


對應到關聯式表格的結構。樞紐表把兩欄用「品項」當成資料內容的關聯式表格欄位,挑出相異品項的清單,當作樞紐表的 X/Y 欄位陳列的「標籤」(例如,可以用 enum 型態來列舉資料內容的欄位,或是紀錄每日的日期/月份的欄位,都可以當成樞紐表 X/Y 軸的標籤);而中間的內容,就是對照 (X, Y) 值當成條件的 Aggregation 結果。

要從關聯式表格產生樞紐分析表,便要組織 SQL 查詢,呈現結果,再使用樞紐表組織工具處理

  • 準備作為 X 軸的欄位資料
  • 準備作為 Y 軸的欄位資料
  • 準備用來作總結的資料


以上的關係搞清楚之後,樞紐表能不能用 PostgreSQL 資料庫的 SQL 語法完成?

2017年7月3日 星期一

cygwin 裡面安裝 python3-matplotlib 和 python3-scipy

在 Windows 裡面有一款類比一般 GNU/Linux 裡面 Shell 與相關工具的程式,叫做 Cygwin,是由 Red Hat 維護的。儘管 Windows 10 有提供 Linux Shell(Windows Subsystem for Linux),聽說可以裝 Debian 或 Ubuntu 的套件,不過我還是習慣用 Cygwin~(其實,我更習慣 Slackware~)

Cygwin 裡面已經有提供 OpenBLAS 與針對 OpenBLAS 編譯的 LAPACK 函式庫,可以用 CPU 處理多執行緒數值線性代數運算,以及針對這兩個東西編譯的 Python2/Python3 是值運算模組 Numpy。用這些就可以作數值運算了。

不過一般都會再裝 ScipyMatplotlib 來用;要在 Cygwin 裡面用 Matplotlib 與 Scipy,就得用 setuptools 的 easy_installpip 來裝;但是安裝過程有一些套件相依性要處理,也是有一點麻煩步驟的。

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 裡面。
在此作一些使用的總結