`

分组查询 每组查询前5条

阅读更多

按班级分组查询,每组查询出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"  区分下。 

查询结果如下图:



 

 

  • 大小: 34.8 KB
  • 大小: 41.2 KB
分享到:
评论

相关推荐

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: 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分组排序取数据的实现

    5. 通过`WHERE`子句选择每组的特定行(如第二行),并将结果存储到`#tempMaturity1`中。 6. 最后,可以查询临时表以查看结果,或者删除临时表以释放空间。 这样的方法对于处理大数据集尤其有用,例如在财务报告、...

    Oracle实现对查询结果每N条再次分组博客所用数据库

    通过这个查询,你可以获取每组的第一条记录,或者根据需要修改WHERE子句来选择其他组的记录。 描述中的链接指向了一个具体的博客文章,虽然具体内容没有给出,但可以推测这篇文章可能详细讲解了如何在Oracle数据库...

    mysql获取分组后每组的最大值实例详解

    在MySQL中,获取分组后每组的最大值是一项常见的数据分析任务,这通常涉及到聚合函数和分组查询。本文将详细讲解如何使用SQL语句来实现这个功能,通过一个具体的实例来帮助理解。 首先,我们创建了一个名为`test`的...

    SQL高级实例-模糊查询-分组随机查询-转换

    `GROUP BY`语句允许我们根据一个或多个列对数据进行分组,然后使用聚合函数如`COUNT`、`SUM`、`AVG`、`MIN`和`MAX`来计算每组的总和、平均值等信息。例如,`SELECT department, COUNT(*) FROM employees GROUP BY ...

    易语言学习进阶分组查询

    2. **聚合函数的应用**:在分组查询中,通常会结合使用聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等,来计算每个分组的特定值。例如,计算每个组的数量: ```易语言 SQL执行("SELECT column1, COUNT(*) ...

    MySql分组后随机获取每组一条数据的操作

    在MySQL数据库中,有时我们需要对数据进行分组处理,并从每个分组中随机选取一条记录。这在统计分析或者抽样调查等场景中非常常见。本文将详细介绍如何在MySQL中实现这一操作,以及一些关于随机选取数据的优化方法。...

    数据库中的分组查询及数据筛选

    它允许用户根据一个或多个列的值将结果集划分为多个逻辑组,从而对每个组执行聚合函数(如计数、求和、平均等)。分组查询的基本语法如下: ```sql SELECT 分组函数,分组后的字段 FROM 表 WHERE 筛选条件 GROUP BY...

    MySQL- 分组查询讲解

    MySQL中的分组查询是SQL语言中的一个重要组成部分,它允许我们对数据进行聚合操作,以便根据一个或多个列的值对结果进行分类。这种查询方法在处理大量数据时尤其有用,可以用于统计、分析和总结数据。下面我们将深入...

    MySQL DQL - 分组查询.md

    在分组之后,可以对每个分组执行聚合函数,如`COUNT()`、`SUM()`、`AVG()`、`MAX()`和`MIN()`等,以便计算每组的数据统计信息。 #### 常用的聚合函数 - **COUNT()**: 统计每个分组中符合条件的记录数量。 - **SUM...

    oracle-plsql.zip_oracle_pl sql 分组查询_plsql_plsql 分组查询

    2. **分组查询**:在SQL中,GROUP BY语句用于根据一个或多个列对结果进行分组,常与聚合函数(如COUNT、SUM、AVG、MAX和MIN)一起使用,以便对每个分组执行统计计算。 3. **多表查询**:通过JOIN操作,可以从两个或...

    test_lesson06 分组查询.pdf

    在数据库管理中,分组查询(Group By)是一种强大的功能,它允许我们对数据进行聚合操作,例如计算每个组的总和、平均值、最大值和最小值等。本篇内容将深入探讨MySQL中的分组查询及其应用。 首先,我们要理解SQL中...

    sql分组查询和聚合函数

    #### 五、分组查询与其他 SQL 语句的组合 分组查询还可以与其他 SQL 语句结合使用,例如子查询、连接查询等。 ##### 示例:使用子查询进行连接查询 假设有一个表 `students` 包含学生信息,我们需要找出每位学生的...

    小程序云函数分组查询.zip

    2. **分组查询**:在数据库操作中,分组查询是将数据按照某一或某些字段进行归类,以便对每个组进行统计或其他分析。在JavaScript中,MongoDB的聚合框架提供了这一功能,小程序云函数通常也是基于类似的数据库系统。...

    C#List集合分组winform把List分组

    Select方法用于转换每个分组,将其与分组的键(Age)一起包装在一个匿名类型中,这样我们就可以方便地访问每个年龄组及其成员。 在WinForm应用中,我们可以将groupedPeople的结果绑定到控件,比如DataGridView,...

    小程序云函数分组查询结果转换.zip

    本主题聚焦于在小程序中如何利用云函数进行分组查询并转换查询结果,主要涉及`aggregate()`、`match()`和`group()`这三个关键操作。我们将深入探讨这些概念,并通过`小程序云函数分组查询结果转换.js`文件中的示例来...

    Oracle基础查询关联查询练习题.docx

    分组查询是指将数据分组,并对每个组进行聚合操作。 1. 分组查询 第一个练习题是查询每个部门中每个职位的最高薪水。该查询使用了 GROUP BY 子句来分组,并使用 MAX 函数来计算最高薪水。 知识点:GROUP BY 子句...

    【IT十八掌徐培成】Java基础第24天-04.分组查询-having-连接查询-笛卡尔积.zip

    今天我们要探讨的是Java基础中的数据库操作,特别是SQL查询技术,包括分组查询、HAVING子句、连接查询以及笛卡尔积。这些概念在处理复杂数据时至关重要。 首先,让我们了解分组查询。在SQL中,GROUP BY语句用于将...

    MySql中流程控制函数/统计函数/分组查询用法解析

    分组查询允许我们按照一个或多个字段将数据分组,然后对每个组进行统计。 ```sql -- 按部门ID分组,统计每个部门的平均工资 SELECT department_id, AVG(salary) AS 平均工资 FROM employees GROUP BY department_id...

Global site tag (gtag.js) - Google Analytics