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