以下是一些覺的SQL子句:
GROUP BY
語句用於將相同的資料排列到分組中。 GROUP BY
語句與SQL SELECT語句一起使用。GROUP BY
語句在SELECT
語句中跟隨WHERE
子句,並在ORDER BY子
句之前。GROUP BY
語句與聚合函式一起使用。語法
SELECT column
FROM table_name
WHERE conditions
GROUP BY column
ORDER BY column
假設有一個表:PRODUCT_MAST ,它的結構和資料記錄如下所示 -
PRODUCT | COMPANY | QTY | RATE | COST |
---|---|---|---|---|
Item1 | Com1 | 2 | 10 | 20 |
Item2 | Com2 | 3 | 25 | 75 |
Item3 | Com1 | 2 | 30 | 60 |
Item4 | Com3 | 5 | 10 | 50 |
Item5 | Com2 | 2 | 20 | 40 |
Item6 | Cpm1 | 3 | 25 | 75 |
Item7 | Com1 | 5 | 30 | 150 |
Item8 | Com1 | 3 | 10 | 30 |
Item9 | Com2 | 2 | 25 | 50 |
Item10 | Com3 | 4 | 30 | 120 |
範例
SELECT COMPANY, COUNT(*)
FROM PRODUCT_MAST
GROUP BY COMPANY;
執行上面語句,得到結果如下 -
Com1 5
Com2 3
Com3 2
HAVING
子句用於指定分組或聚合的搜尋條件。GROUP BY
子句中使用,如果沒有使用GROUP BY
子句,那麼可以像使用WHERE
子句一樣使用HAVING
函式。語法:
SELECT column1, column2
FROM table_name
WHERE conditions
GROUP BY column1, column2
HAVING conditions
ORDER BY column1, column2;
範例
SELECT COMPANY, COUNT(*)
FROM PRODUCT_MAST
GROUP BY COMPANY
HAVING COUNT(*)>2;
執行上面語句,得到結果如下 -
Com1 5
Com2 3
ORDER BY
子句按升序或降序對結果集進行排序。DESC
關鍵字用於按降序對記錄進行排序。語法:
SELECT column1, column2
FROM table_name
WHERE condition
ORDER BY column1, column2... ASC|DESC;
其中,
ASC
:用於按表示式按升序對結果集進行排序。DESC
:它按表示式按降序對結果集進行排序。範例: 按升序排序結果
假設有一個 CUSTOMER
表,它的結構和資料記錄如下 -
CUSTOMER_ID | NAME | ADDRESS |
---|---|---|
12 | Kathrin | US |
23 | David | Bangkok |
34 | Alina | Dubai |
45 | John | UK |
56 | Harry | US |
執行以下SQL語句:
SELECT *
FROM CUSTOMER
ORDER BY NAME;
得到以下結果 -
CUSTOMER_ID | NAME | ADDRESS |
---|---|---|
34 | Alina | Dubai |
23 | David | Bangkok |
56 | Harry | US |
45 | John | UK |
12 | Kathrin | US |
範例:按降序排序結果
基於上面的CUSTOMER
表,執行下面SQL語句 -
SELECT *
FROM CUSTOMER
ORDER BY NAME DESC;
得到以下結果 -
CUSTOMER_ID | NAME | ADDRESS |
---|---|---|
12 | Kathrin | US |
45 | John | UK |
56 | Harry | US |
23 | David | Bangkok |
34 | Alina | Dubai |