1、测试数据:

create table t2 (

id int primary key,

gid char,

col1 int,

col2 int

) engine=myisam;

insert into t2 values

(1,'A',31,6),

(2,'B',25,83),

(3,'C',76,21),

(4,'D',63,56),

(5,'E',3,17),

(6,'A',29,97),

(7,'B',88,63),

(8,'C',16,22),

(9,'D',25,43),

(10,'E',45,28),

(11,'A',2,78),

(12,'B',30,79),

(13,'C',96,73),

(14,'D',37,40),

(15,'E',14,86),

(16,'A',32,67),

(17,'B',84,38),

(18,'C',27,9),

(19,'D',31,21),

(20,'E',80,63),

(21,'A',89,9),

(22,'B',15,22),

(23,'C',46,84),

(24,'D',54,79),

(25,'E',85,64),

(26,'A',87,13),

(27,'B',40,45),

(28,'C',34,90),

(29,'D',63,8),

(30,'E',66,40),

(31,'A',83,49),

(32,'B',4,90),

(33,'C',81,7),

(34,'D',11,12),

(35,'E',85,10),

(36,'A',39,75),

(37,'B',22,39),

(38,'C',76,67),

(39,'D',20,11),

(40,'E',81,36);

2、问题:

期望结果

1) N=1 取GID每组 COL2最大的记录

+----+------+------+------+

| id | gid | col1 | col2 |

+----+------+------+------+

| 6 | A | 29 | 97 |

| 15 | E | 14 | 86 |

| 24 | D | 54 | 79 |

| 28 | C | 34 | 90 |

| 32 | B | 4 | 90 |

+----+------+------+------+

2) N=3 取GID每组 COL2最大的3条记录

+----+------+------+------+

| id | gid | col1 | col2 |

+----+------+------+------+

| 6 | A | 29 | 97 |

| 11 | A | 2 | 78 |

| 36 | A | 39 | 75 |

| 32 | B | 4 | 90 |

| 2 | B | 25 | 83 |

| 12 | B | 30 | 79 |

| 28 | C | 34 | 90 |

| 23 | C | 46 | 84 |

| 13 | C | 96 | 73 |

| 24 | D | 54 | 79 |

| 4 | D | 63 | 56 |

| 9 | D | 25 | 43 |

| 15 | E | 14 | 86 |

| 25 | E | 85 | 64 |

| 20 | E | 80 | 63 |

+----+------+------+------+

3、答案:

1)

select * from t2 a

where not exists

(select 1 from t2 where gid=a.gid and col2>a.col2);

或者:

select*from(select*fromt2orderbygid,col2desc) tgroupbygid;

2)

select * from t2 a where

3>(select count(*) from t2 where gid=a.gid and col2>a.col2)

order by a.gid,a.col2 desc;

类似的问题:

--------------------

public class User{

//数据库表明也是User

private String userId;//id

private String userName;//用户名

private Date cd_time;注册时间

private User inviteUser; //邀请人(填的实际上邀请人的ID【外键】)

}

有如下数据,注册时间没有写,就是系统当前时间

1  张一  null

2  张二  null

3  张三  null

4  张四  null

5  张五  1    -------------表示张五是张一邀请来的

6  张六  2    -------------表示张刘是张二邀请来的

7  张七  3

8  张八  4

9  张九  5

10 王一  6

11 王二  6

12 王三  6

13 王四  1

14 王五  13

需求是,按时间顺序,查询出前十条

像这样:

张一,2 张一邀请了2人

张二,1 张二邀请了1人

张三,1

...

张五,1

张六,3 张六邀请了3人

王四,1 王四邀请了1人

select a.userName, count(b.userId)

from User a left join User b on a.userId = b.inviteUser

group by a.userName

mysql自连接分组查询最新_MySQL 自连接分组取每组最大N条记录相关推荐

  1. mysql单列去重复group by分组取每组前几条记录加order by排序

    <div class="post"><h1 class="postTitle"><a id="cb_post_title ...

  2. mysql 排序取前4,mysql分组取每组前几条记录(排序)

    首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...

  3. mysql分组取每组前几条记录(排序)

    首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...

  4. mysql 分组查询最新

    mysql分组查询最新 看到网上说到的方法和我写的都一样,也不知道有没有更好的方法,等到解答. SELECT id,group_id from (SELECT id,group_id from tab ...

  5. MySQL分组查询最新的一条记录

    问题描述 使用关键字 group by,和order by,但是直接在查询语句后跟上group和order会失效 举例说明:table表中的每个code最新的一条数据 失效写法: SELECT t.` ...

  6. mysql分组查询最新数据

    分组查询最新数据是开发中经常遇见的应用场景. 在mysql5.7之前,可以通过 SELECT * FROM ( SELECT * FROM student ORDER BY create_time D ...

  7. mysql按照学生分组查询_将student表按照gender字段值进行分组查询,并计算每个分组中有多少名学生_学小易找答案...

    [简答题]查询student表中一共有多少条记录 [简答题]在department表和employee表之间分别使用where查询.自连接查询 [简答题]使用DESC查看学生表和班级表 [简答题]在表 ...

  8. oracle数据库怎么分组查询,oracle数据库之分组查询

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

  9. PHP利用分组查询groupby,Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy...

    Laravel 5.5 Linux mint 18 PHPStorm 最近刚玩Laravel,手册源码还没来得及看完就跃跃欲试做了个小项目,其中有个需求是分组查询数据库中的一个字段并返回每个分组中的数 ...

最新文章

  1. 10张 GIF 动图让你弄懂递归等概念
  2. 阿里云中间件技术 促进互联网高速发展
  3. bootargs中的环境变量说明和一些常用的uboot命令
  4. .NET 状态机Automatonymous快速入门
  5. mysql kill hup_kill -HUP pid
  6. 用c语言实现艺术清屏
  7. Bailian3719 学生信息用qsort排序【排序+字符串库函数】
  8. 【Matlab学习笔记】【函数学习】size参数
  9. 事件声音和提示 注册表全攻略
  10. office随笔记录—— 批量删除空白行
  11. 802.1Q帧的格式 与 VLAN的类型
  12. Java的LockSupport.park()实现分析(转载)
  13. hubot+slack(slack部分)
  14. 阿里云函数计算使用教程
  15. 微信页面通过LocalID预览图片,getlocallmgdata
  16. 如何使用 Delta Lake 构建批流一体数据仓库
  17. 映客公布2021年财报:营收约92亿元,市值一个月减少24亿港元
  18. mysql和postsql分页数据的区别
  19. unity_banner广告
  20. Linux下配置使用VNC

热门文章

  1. 使用windows命令行查看mySQL应用的安装路径
  2. SAP Analytics Cloud和Cloud for Customer之间的Single Sign on配置
  3. Wordpress如何打开调试模式
  4. promolike原型开发前后台打通
  5. Busy Dialog init - hashchange will call BusyDialog.open - flower
  6. 一个程序员年近四十岁的一些胡思乱想
  7. SAP Fiori国际化支持之UI5 RTL support的实现原理
  8. Important table for launchpad Designer and configuration
  9. CM: 关于删除attachment时是否需要commit work的问题
  10. npm install对本地工程文件造成了哪些修改