PostgreSQL 有一些內建的方法,以下列出幾個很常見的!
sum()
加總avg()
平均值count()
總計筆數還有很多很多,請參考這裡:
https://www.postgresql.org/docs/current/functions-aggregate.html
可以搭配 GROUP BY
計算查詢資料的總和、平均值或筆數!
現在寫程式,提倡物件導向,把它寫成一個Class 或是方法,反正只需要告訴我需要的值,我給你計算後的結果,過程你不需要知道。
例如:AWS 有API 可以把照片傳給它,幫你判斷照片中的所有事物,程式邏輯裡面,牽扯到相當多的分析運算,包含機器學習(讓判斷更準確),或是臉部辨識的圖片分析程式,不過你只需要給它一張照片,它就會回傳相關的關鍵字,有人物在照片中的話,就會告訴你性別、大約年紀...或者照片中其他的內容,照片有 背包、椅子、iPhone ...
這樣的過程減少了很多的麻煩,如果你常常使用這些方法的話。
現在就來打造第一個 資料庫的 Function ,其他資料庫也有類似的功能喔!
先來打造一個簡單的Function吧!動物年紀轉換功能,命名為 animal_age_change()
好了!邏輯的部分我們定義,年紀大於一年 成犬、成貓...(ADULT)小於一年 幼犬、幼貓...(CHILD)
CREATE OR REPLACE FUNCTION
animal_age_change(birthday timestamp)
RETURNS text AS $$
BEGIN
IF now() - birthday >= '1 years'::interval THEN RETURN 'ADULT';
ELSE RETURN 'CHILD';
END IF;
END;
$$ LANGUAGE plpgsql;
只要給動物生日的日期,並且搭配方法 例如:animal_age_change('2019-10-10')
就可以判斷並回傳成犬還是幼犬
SELECT animal_age_change('2019-10-01');
--結果'CHILD' 執行日期 2019-10-10