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加锁的原理,你会被它整 ...
随机推荐
- nginx4层代理ssh服务
四层代理依赖模块ngx_stream_core_module,默认情况下,此模块不构建,应使用配置参数启用 --with-stream 配置文件内容: ... stream { upstream ss ...
- Python3之并发(七)---线程同步队列(queue)
queue模块实现了多生产者,多消费者队列 queue模块的常用类和异常 queue.Queue(maxsize=0) 先进先出(FIFO)的队列, maxsize: 队列的大小(即队列的元素个数), ...
- 解决PageHelper分页不正常,pages始终等于1,total 始终等于pageSize的问题
问题 pages始终等于1,total 始终等于pageSize 原因 原因是我在查询到list数据之后,对list做了操作,导致分页不正常 // 这是service层的类 public PageIn ...
- 目标检测yolov5检测火龙果
一.github官方网址 https://github.com/ultralytics/yolov5/tree/v6.1 二.labelme标记数据集: (1).进入虚拟环境 (2).pip inst ...
- JS篇(002)-JavaScript 中如何检测一个变量是一个 String 类型?
答案:三种方法(typeof.constructor.Object.prototype.toString.call()) 解析: ①typeof typeof('123') === "str ...
- Github页面图片加载失败
Window系统下 还可以使用ipconfig/flush对本地DNS缓存进行一次刷新,如果遇到网络异常,可能是DNS缓存的问题,刷新一下,步骤. windows开始→运行→输入:CMD 按回车键,打 ...
- LeetCode系列之 (JavaScript) => 66. 加一
题目描述: 解题思路分析: 模拟十进制: 分析有几种情况,按情况来定 不同解法: /** * @param {number[]} digits * @return {number[]} */ // v ...
- Django基础篇 04-模型类注册到后台Django Admin中
一.django自带的admin的url地址 urls.py文件中 from django.contrib import admin from django.urls import path from ...
- wavesurfer音波插件之播放指定语音片段
使用wavesurfer音波插件时,可能会用到这么一个功能,点击音转文后的某一句文字,则需要在音波条上进行播放这一段录音,恰好wavesurfer插件自带这么一个功能,直接上代码: <scrip ...
- 【APT】Patchwork APT组织针对巴基斯坦国防官员攻击活动分析
前言 Patchwork(白象.摩诃草.APT-C-09.Dropping Elephant)是一个疑似具有印度国家背景的APT组织,该组织长期针对中国.巴基斯坦等南亚地区国家进行网络攻击窃密活动.本 ...