【查询】常用查询语句
|
书写顺序 |
执行顺序 |
|---|---|
|
SELECT count(*) FROM table_name WHERE uri='xxx' GROUP BY dt HAVING dt>'xxx' ORDER BY desc LIMIT 10 |
(1) FROM: 指定数据源,从中选择列和行 (2) WHERE: 筛选行,过滤掉不满足条件的行 (3) GROUP BY: 将筛选后的行按照指定的列进行分组 (4) HAVING: 对分组后的结果进行进一步的筛选 (5) SELECT: 选择所需的列或计算值 (6) ORDER BY: 对结果进行排序 (7) LIMIT: 限制返回的行数 |
1、GROUP BY
用于结合聚合函数使用,根据指定字段进行分组。
- GROUP BY后指定需要分组的字段
- SELECT后的非聚合字段只能是GROUP BY子句中的,简单理解为 SELECT后的字段 = GROUP BY后的字段+聚合函数
- GROUP BY HAVING:用于对GROUP BY结果进行过滤
2、ORDER BY
用于对查询结果进行排序。可以按一个或多个列的升序(ASC)或降序(DESC)进行排序
- 在指定一条 ORDER BY 子句时,应该保证它是 SELECT 语句中最后一条子句。如果它不是最后的子句,将会出错。
- 同时使用order by 和 limit时,先写order by,再写 limit
3、LIMIT
用于限制返回记录的数量。
- LIMIT放在语句最后,执行时也是最后执行
- 分页查询
示例
1、LIMIT是处理后限制返回记录数量,不是选择行数再去处理。如果想选择100行然后查询,可以使用子查询。
SELECT app_id, uri FROM ( SELECT * FROM table_name LIMIT 1000 ) AS limited_data

浙公网安备 33010602011771号