以下是一些觉的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 |
