按班级分组查询,每组查询出5条数据。
数据表结构如下:
DROP TABLE IF EXISTS `test1`; CREATE TABLE `test1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `class` int(11) DEFAULT NULL COMMENT '班级', `name` text COMMENT '名姓', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of test1 -- ---------------------------- INSERT INTO `test1` VALUES ('1', '2', 'a'); INSERT INTO `test1` VALUES ('2', '2', 'b'); INSERT INTO `test1` VALUES ('3', '2', 'c'); INSERT INTO `test1` VALUES ('4', '2', 'd'); INSERT INTO `test1` VALUES ('5', '2', 'e'); INSERT INTO `test1` VALUES ('6', '2', 'f'); INSERT INTO `test1` VALUES ('7', '2', 'g'); INSERT INTO `test1` VALUES ('8', '2', 'h'); INSERT INTO `test1` VALUES ('9', '3', 'i'); INSERT INTO `test1` VALUES ('10', '3', 'j'); INSERT INTO `test1` VALUES ('11', '3', 'k'); INSERT INTO `test1` VALUES ('12', '3', 'l'); INSERT INTO `test1` VALUES ('13', '3', 'm'); INSERT INTO `test1` VALUES ('14', '3', 'n'); INSERT INTO `test1` VALUES ('15', '3', 'o'); INSERT INTO `test1` VALUES ('16', '3', 'p'); INSERT INTO `test1` VALUES ('17', '4', 'q'); INSERT INTO `test1` VALUES ('18', '4', 'r'); INSERT INTO `test1` VALUES ('19', '4', 's');
实现sql:
select t.* from test1 t where 5>(select count(*) from test1 where class=t.class and id<t.id) order by id desc
因为2次select 的都是同一张表,所以需要用 "from test1 t" 区分下。
查询结果如下图:
相关推荐
–按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...
此文档中详细的记载了,SQL Server分组排序取数据的实现,希望可以帮到下载的朋友们!
分组后分组合计以及总计SQL语句(稍微整理了一下)MYSQL每隔10分钟进行分组统计的实现方法mysql使用GROUP BY分组实现取前N条记录的方法详解MySQL中的分组查询与连接查询语句sql server如何利用开窗函数over()进行...
使用ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) 先进行分组 注:根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). sql语句为: select ...
java一次性查询处理几百万数据解决方法 几百万数据是可以处理的 暂时还没试过几千万级的数据处理
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。 having 子句被限制子已经在SELECT语句中定义的列和聚合...
--top 取前N条记录 select top 3 * from student; --alias column name 列重命名 select id as 编号, name '名称', sex 性别 from student; --alias table name 表重命名 select id, name, s.id, s.name from ...
主要介绍了sql中时间以5分钟半个小时任意间隔分组的实现方法,在文中给大家提到了sql server时间查询的代码,需要的朋友可以参考下
9.3.1 每组中的TOP n 9.3.2 匹配当前值和前一个值 9.3.3 分页 9.4 逻辑转换 9.5 总结 第10章 数据修改 10.1 插入数据 10.1.1 增强的VALUES子句 10.1.2 SELECT INTO 10.1.3 BULK行集提供程序 10.1.4 按最小...
(1) 通讯录的每一条信息包括姓名,手机,电话,性别,分组; (2) 输入功能:可以一次完成若干条信息的输入; (3) 显示功能:完成全部通讯录信息的显示 (4) 查找功能:完成按姓名查找通讯信息; (5) 删除...
也就是说可以在组里再分组,为数据分组提供更细致的控制。 2、如果在GROUP BY子句中指定多个分组,数据将在最后指定的分组上汇总。 3、GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数...
SQL查询至少5到10个(给出数据查询操作:至少给出7种查询方式,分别涉及到:确定集合查询、字符匹配查询、汇总查询、分组查询、连接查询、嵌套查询、带EXISTS或NOT EXISTS 谓词查询等) 视图至少有3个 索引至少有3个...
--4、查询TitleAuthor表中,按照Title_ID进行分组查询, --并显示每一组中royaltyper的最大值, --查询限制条件的要求是:au_id的值必须不以”8”开头,但必须包含字符”8”; select max(royaltyper)最大值,Title_...
9.3.1 每组中的TOP n408 9.3.2 匹配当前值和前一个值413 9.3.3 分页416 9.4 逻辑转换422 9.5 总结424 第10章 数据修改425 10.1 插入数据425 10.1.1 增强的VALUES子句425 10.1.2 SELECT INTO426 10.1.3 BULK行集提供...
9.3.1 每组中的TOP n408 9.3.2 匹配当前值和前一个值413 9.3.3 分页416 9.4 逻辑转换422 9.5 总结424 第10章 数据修改425 10.1 插入数据425 10.1.1 增强的VALUES子句425 10.1.2 SELECT INTO426 10.1.3 BULK...
在查询的基础上创建新表 前导知识: SELECT 语句的基本语法 SELECT <目标列名表> FROM <数据源表> [WHERE <查询条件>] [GROUP BY <分组列>] [HAVING <组选择条件>] [ORDER BY <排序列> [ASC"DESC] ] 实验环境 ...
在项目中遇到buttonGroup下的3个radioButton在选中后,不能恢复初始的...点击choose按钮,可以启动定时器,每2s查询一次3个radiobutton,打印被选中的信息。 点击init按钮,可以让3个radiobutton回到初始全不选的状态。