Mysql 行号+分组行号+取Top记录 SQL
Mysql 行号+分组行号+取Top记录 SQL
select * from (
SELECT (@rowNum := @rowNum + 1) as rowNum -- 全量行号
, a.col1 , case
when @groupItem != a.col1 then @groupRowNum := 1
else @groupRowNum := @groupRowNum + 1 end as groupRowNum -- 根据分组项目,设置分组行号, 分组项目与当前行分组项目不一致时,则分组行号重新置 1
, case
when @groupItem != a.col1 then @groupItem := a.col1
else round(@groupItem, 0) end as groupItem -- 标记分组项目, 为分组行号提供判断依据
, col2
, num
FROM (
SELECT col1 , col2, COUNT(*) as num
FROM tb_test
GROUP BY col1, col2
) a
inner join (select @rowNum := 0 as rowNum) t1 -- 全量行号变量 初始化
inner join (select @groupRowNum := 0) t2 -- 分组行号变量 初始化
inner join (select @groupItem := -1) t3 -- 分组项目变量 初始化
where 1 = 1
order by a.col1, num desc -- 分组行号排序条件
limit 100000 -- order by 在子查询中不能行, 需要加 limit
) x
where 1=1
and groupRowNum <=3 -- 增加 分组后 top n 条件
;
Mysql 行号+分组行号+取Top记录 SQL的更多相关文章
- 关于MYSQL group by 分组按时间取最大值的实现方法!
类如 有一个帖子的回复表,posts( id , tid , subject , message , dateline ) , id 为 自动增长字段, tid为该回复的主题帖子的id(外键关联), ...
- 关于MYSQL group by 分组按时间取最大值的实现方法
类如 有一个帖子的回复表,posts( id , tid , subject , message , dateline ) , id 为 自动增长字段, tid为该回复的主题帖子的id(外键关联), ...
- 【mysql】【分组】后取每组的top2
DROP TABLE IF EXISTS `tb1`; CREATE TABLE `tb1` ( `id` ) NOT NULL AUTO_INCREMENT, `a` ) DEFAULT NULL, ...
- GridView 显示行号 设置行号列的宽度
/// <summary> /// GridView 显示行号 设置行号列的宽度 /// </summary> /// <param name="gv" ...
- APISpace 尾号限行API接口 免费好用
尾号限行是一种为了缓解城市交通压力而催生的交通制度,措施实施以后对城市交通拥堵起到缓解作用.每个地区的尾号限行规定都有所不同,具体的以当地的为准. 尾号限行API,提供已知所有执行限行政策的共计6 ...
- SQL Server 分组后取Top N
SQL Server 分组后取Top N(转) 近日,工作中突遇一需求:将一数据表分组,而后取出每组内按一定规则排列的前N条数据.乍想来,这本是寻常查询,无甚难处.可提笔写来,终究是困住了笔者好一会儿 ...
- Hive分组取Top N
Hive在0.11.0版本开始加入了row_number.rank.dense_rank分析函数,可以查询分组排序后的top值 说明: row_number() over ([partition ...
- Mysql的事务及行级锁
转自:http://www.cnblogs.com/edwinchen/p/4171866.html 以签到为例,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当初表设计的时候, ...
- Mysql表锁、行锁、页锁
参考 http://www.jb51.net/article/50047.htm <MySQL行级锁.表级锁.页级锁详细介绍> 页级:引擎 BDB.表级:引擎 MyISAM , 理解为锁住 ...
- [转]MySQL 表锁和行锁机制
本文转自:http://www.cnblogs.com/itdragon/p/8194622.html MySQL 表锁和行锁机制 行锁变表锁,是福还是坑?如果你不清楚MySQL加锁的原理,你会被它整 ...
随机推荐
- 自定义类型与Qt元对象系统
个人发现一篇关于在Qt中使用元对象系统支持自定义类型的好博文,记录下防止丢失(如有侵权,烦请告知删除).博文原地址:http://qtdebug.com/qtbook-misc-qvariant/ Q ...
- 2019-2020-1 20199318《Linux内核原理与分析》第十二周作业
<Linux内核原理与分析> 第十二周作业 一.预备知识 Set-UID 是 Unix 系统中的一个重要的安全机制.当一个 Set-UID 程序运行的时候,它被假设为具有拥有者的权限.例如 ...
- 2.对于script标签的放置位置
使用<script>元素有两种方式 一种是在页面嵌入JavaScript代码 ,一种就是包含外部JavaScript文件 包含在<script>标签内部的JavaScript代 ...
- labwindows excel 不同电脑上无法保存
存到c盘以外的盘,c盘因为权限问题可能无法写入
- Map 使用
1.替换map中的某个key Map<String,Object> map = new HashMap<>(); map.put("新key",map.re ...
- 「SOL」Hamiltonian Cycle (AtCoder)
原来一般的四度图也没法快速构造哈密顿回路 QwQ # 题面 给定质数 \(P\) 和正整数 \(a,b\),构造一个长为 \(P\) 的数列 \(G=(g_1,g_2,\dots,g_P)\),满足: ...
- 北大2022编译原理实践(C/C++)-sysy 编译器构建
这是今年新推出的实践方案,由往年的sysy->IR1->IR2->RISC V变成了sysy->Koopa->RISC V,通过增量的方式让整个实践过程更容易上手 所以先 ...
- gets,fgets,getchar,fgetc
以上四个函数都是读取外部输入的函数.可以使stdin,也可以是文件.以下都是在C语言中的应用 关于gets和fgets都能够读取一行,一行结束的标志是"回车".都有弊端gets(s ...
- curl下载远程图片到服务器
<?php //curl下载远程图片到服务器 方法 function download($url, $path = 'images/'){ $ch = curl_init(); $names = ...
- Loadrunner录制时弹出Microsoft Visual C++ Runtime Library解决方案
这段时间用loadrunner测试工具,录制脚本的时候老是出现这个弹窗,刚开始就以为是软件错误,就用的软件修复,也解决了,后来还是出现这样的错误,修复也没有用 原因:可能是代理服务器在调用VC库的时候 ...