获取分组后统计数量最多的纪录;limit用法;sql执行顺序

CREATE TABLE emp(
id INT PRIMARY KEY,
NAME VARCHAR(11),
dep_id INT ,
salary INT
);

CREATE TABLE dept(
id INT PRIMARY KEY,
NAME VARCHAR(11),
parentid INT);

获取各部门人数信息:

SELECT e.dep_id,d.name,COUNT(e.dep_id) FROM emp e,dept d WHERE e.dep_id=d.id GROUP BY e.dep_id;

统计部门人数最多的部门:
SELECT e.dep_id,d.name,COUNT(e.dep_id) numbers FROM emp e,dept d WHERE e.dep_id=d.id GROUP BY e.dep_id ORDER BY numbers DESC LIMIT 1;



limit用法:

LIMIT 5,10; // 检索记录行 6-15
LIMIT 95,-1; // 检索记录行 96-last.
LIMIT 5; //检索前 5 个记录行



sql执行顺序:

写的顺序:select ... from... where.... group by... having... order by.. limit [offset,] 
(rows)
执行顺序:from... where...group by... having.... select ... order by... limit

(1)from 
(3) join 
(2) on 
(4) where 
(5)group by(开始使用select中的别名,后面的语句中都可以使用)
(6) avg,sum.... 
(7)having 
(8) select 
(9) distinct 
(10) order by

原文地址:https://www.cnblogs.com/mryangbo/p/10793563.html

时间: 2024-11-05 14:52:55

获取分组后统计数量最多的纪录;limit用法;sql执行顺序的相关文章

获取分组后取某字段最大一条记录

获取分组后取某字段最大一条记录 方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type );

获取分组后的TOP 1和TOP N记录

MySQL获取分组后的TOP 1和TOP N记录 有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,在一些别的数据库可能有窗口函数可以方面的查出来,但是MySQL没有这些函数,没有直接的方法可以查出来,可通过以下的方法来查询. 准备工作 测试表结构如下: root:test> show create table test1\G *************************** 1. row *************************** T

获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)

获取分组后取某字段最大一条记录方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type ); 方法二:(效率次之) select a.* from test a, (select type,max(typeindex) typeindex from test group by type) b where a.type = b.

MySQL获取分组后的TOP 1和TOP N记录

有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,在一些别的数据库可能有窗口函数可以方面的查出来,但是MySQL没有这些函数,没有直接的方法可以查出来,可通过以下的方法来查询. 准备工作 测试表结构如下: root:test> show create table test1\G *************************** 1. row *************************** Table: test1 Create Table:

引用asp.net母版页后,母版页和内容页的页面事件执行顺序

如下,经测试得到的执行步骤: 第01步.内容页的 Page_PreInit第02步.母版页的 Page_Init第03步.内容页的 Page_Init第04步.内容页的 Page_InitComplete第05步.内容页的 Page_PreLoad第06步.内容页的 Page_Load第07步.母版页的 Page_Load第08步.母版页或内容页的 按钮点击等回发事件(Master或Content的Button事件不会同时触发)第09步.内容页的 Page_LoadComplete第10步.内容

sql将日期按照年月分组并统计数量

1 SELECT DATE_FORMAT(releaseDate,"%Y年%m月") AS dates,COUNT(*) FROM t_diary GROUP BY DATE_FORMAT(releaseDate,"%Y年%m月") ORDER BY DATE_FORMAT(releaseDate,"%Y年%m月") DESC ;DATE_FORMAT();按照格式对某个日期操作ORDER BY 排序DESC 降序 原文地址:https://ww

MySQL 分组后,统计记录条数

分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT count(t.counts) FROM ( SELECT num,count(*) AS counts from test_a GROUP BY num ) AS t; SELECT count(DISTINCT num) AS count FROM test_a; 它俩结果一样,都是5:只是一个是子

mongodb 分组查询统计去掉重复的记录

mongodb版本号是,MongoDB shell version: 2.4.4 操作环境,shell窗口 ,如下所示: [mongo_user@mongodb_dbs ~]# mongo --port 30100 MongoDB shell version: 2.4.4 connecting to: 127.0.0.1:30000/test mongos> mongos> use pos switched to db pos mongos> 1,先统计分组记录数,以paymentOrd

MySQL 分组后取每组前N条数据

与oracle的 rownumber() over(partition by xxx  order by xxx )语句类似,即:对表分组后排序 创建测试emp表 DROP TABLE IF EXISTS emp; CREATE TABLE emp ( empno decimal(4,0) NOT NULL, ename varchar(10) DEFAULT NULL, job varchar(9) DEFAULT NULL, mgr decimal(4,0) DEFAULT NULL, hi