一、where、order by、group by 和 having 的使用约束
- WHERE 使用时遵循以下约束:
- 可以在 GROUP BY 或 ORDER BY 之前使用,也可以单独使用。
- WHERE 后的条件表达式里不允许使用聚合函数,而 HAVING 可以。
- ORDER BY 使用时遵循以下约束:
- 可以在 GROUP BY 之后使用,也可以单独使用。
- GROUP BY 使用时遵循以下约束:
- 可以在 WHERE 之后使用,可以在 ORDER BY 之前使用,也可以单独使用。
- 要么凡是在 SELECT 之后的项均将其放在聚合函数里,要么凡是在 SELECT 之后的项必须同时将其写在 GROUP BY 之后。
- HAVING 使用时遵循以下约束:
- HAVING 必须与 GROUP BY 连用,且必须在 GROUP BY 之后使用。
- 可以使用聚合函数——为了解决 WHERE 关键字无法与聚合函数一起使用,SQL 增加了 having 关键字,用来对 分组后的结果 进行筛选。
二、sql 去重
1、distinct 去重
distinct 用于返回唯一不同的值。其语法格式为:
SELECT DISTINCT 列名称 FROM 表名称
【注意】
distinct 必须放在开头。所以,下面的 sql 语句会报错:
select id, distinct name from A; // 会报错
2、group by + count + min 去重
https://www.cnblogs.com/cuitang/p/10600109.html
https://www.jianshu.com/p/4a10aac1293c