以下是一些覺的SQL子句:

1. GROUP BY
- 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
2. HAVING子句
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
3.ORDER BY子句
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 |
