經由先前幾天不斷的修改 Product 資料表後,目前的狀態如下:
id | name | category | cost_price | sell_price | purchase_date | info |
---|---|---|---|---|---|---|
0001 | apple | fruit | 30 | 40 | 2020-09-01 | |
0002 | television | electronic device | 6000 | 8000 | 2020-08-07 | |
0003 | banana | fruit | 20 | 30 | 2020-09-05 | |
0004 | laptop | electronic device | 12000 | 18000 | 2020-09-01 | |
0005 | grape | fruit | 50 | 80 | 2020-08-15 | |
0006 | earphones | electronic device | 10000 | 12000 | 2020-09-01 | |
0007 | strawberry | fruit | 45 | 70 | 2020-09-08 | |
0008 | cell phone | electronic device | 3000 | 3300 | 2020-09-06 | |
0009 | watermelon | fruit | 100 | 160 | 2020-09-25 | NOT NULL |
0010 | testPhone | electronic device |
P.S 有一些操作,為避免和該天主題不相關而有所省略。因此有缺的欄位,請自行補上。
就如同 Microsoft Office 辦公室軟體裡的 Excel 一般,SQL 本身是有一些內建函數來統整資料的。這邊介紹實務上很常用的統計「個數、總和、平均、最大值 / 最小值、排除重複」這五個函數。
/*統計全部資料筆數*/
SELECT COUNT(*) FROM Product;
/*統計 info 欄位不是 NULL 的筆數。當有指定欄位,則 NULL 不會被計入*/
SELECT COUNT(info) FROM Product;
SELECT SUM(sell_price) FROM Product; /*answer: 41680*/
/*以下的計算個數為 9*/
SELECT AVG(sell_price) FROM Product; /*4631.1111*/
/*以下的計算個數為 9,且結果四捨五入到小數點後第二位*/
SELECT ROUND(AVG(sell_price),2) FROM Product; /*4631.11*/
/*若你想把 NULL 當成 0 來計算平均*/
SELECT AVG(COALESCE(sell_price,0)) FROM Product; /*4168.0000*/
SELECT MAX(cost_price), MIN(sell_price) FROM Product;
/*想要統計一共有幾種分類*/
SELECT COUNT(DISTINCT category) FROM Product;