mysql 全局排序 取第n条_MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL...
-- MySQL分组排序取前N条记录的最简洁的单条sql。
USE test;
DROP TABLE IF EXISTS test;
CREATE TABLE test (
id INT PRIMARY KEY,
cid INT,
author VARCHAR(30)
) ENGINE=MYISAM;
INSERT INTO test VALUES
(1,1,'test1'),
(2,1,'test1'),
(3,1,'test2'),
(4,1,'test2'),
(5,1,'test2'),
(6,1,'test3'),
(7,1,'test3'),
(8,1,'test3'),
(9,1,'test3'),
(10,2,'test11'),
(11,2,'test11'),
(12,2,'test22'),
(13,2,'test22'),
(14,2,'test22'),
(15,2,'test33'),
(16,2,'test33'),
(17,2,'test33'),
(18,2,'test33');
INSERT INTO test VALUES (200,200,'200test_nagios');
SELECT * FROM (SELECT cid,author,COUNT(*) AS number FROM test GROUP BY cid,author) a
WHERE
N>(
SELECT COUNT(*)
FROM (SELECT cid,author,COUNT(*) AS number FROM test GROUP BY cid,author) b
WHERE a.cid=b.cid AND a.number)ORDER BY cid,number DESC;
结果如下:
mysql> SELECT * FROM (SELECT cid,author,COUNT(*) AS number FROM test GROUP BY cid,author) a
-> WHERE
-> 3>(
-> SELECT COUNT(*)
-> FROM (SELECT cid,author,COUNT(*) AS number FROM test GROUP BY cid,author) b
-> WHERE a.cid=b.cid AND a.number)ORDER BY cid,number DESC;
+------+----------------+--------+
| cid | author | number |
+------+----------------+--------+
| 1 | test3 | 4 |
| 1 | test2 | 3 |
| 1 | test1 | 2 |
| 2 | test33 | 4 |
| 2 | test22 | 3 |
| 2 | test11 | 2 |
| 200 | 200test_nagios | 1 |
+------+----------------+--------+
7 rows in set (0.00 sec)
N就是取分组之后的最前面几个判断,N=3就是取前3个
-- 生成自动数字序列
SET @ROW=0;
SELECT a.*,(@ROW:=@ROW +1)Rank
FROM test a;
mysql 全局排序 取第n条_MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL...相关推荐
- [MySQL] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit
前言: 同事的业务场景是,按照cid.author分组,再按照id倒叙,取出前2条记录出来. oracle里面可以通过row_number() OVER (PARTIT ...
- .sql文件_Mysql分组排序及Sql文件执行
最近在做一个临时项目,采用的是mysql开发,主要涉及两个问题:1.一个是传参问题:2.另一个是实现对数据分组取前4的数据.个人感觉很有意义,特此记录一下. 一.传参问题 执行mysql文件,需要从外 ...
- mysql分组取所有数据_mysql 分组后取每个组内最新的一条数据
首先,将按条件查询并排序的结果查询出来. mysql> select accepttime,user,job from tuser_job where user =8 order by acce ...
- mysql分组取出每组地一条数据_MySQL 分组后取每组前N条数据
与oracle的rownumber() over(partition by xxxorder by xxx)语句类似,即:对表分组后排序 创建测试emp表 DROP TABLE IF EXISTS e ...
- mysql中实现over partiton by,进行分组排序取topN
创表 CREATE TABLE `t1` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`class` ...
- mysql索引可以提高什么的操作效率_MySQL查询性能优化前,必须先掌握MySQL索引理论...
数据库索引在平时的工作是必备的,怎么建索引,怎么使用索引,可以提高数据的查询效率.而且在面试过程,数据库的索引也是必问的知识点,比如:索引底层结构选型,那为什么选择B+树? 不同存储引擎的索引的体现形 ...
- MySQL 查询学生的总成绩并进行排名_MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况)...
MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) MySQL查询各科成绩前三名的记录及排名(不考虑成绩并列情况) 我的表结构: 先放代码 -- 查询各科成绩前三名的记录(不考虑成绩并列情 ...
- mysql查询前20条数据_SQL Server查询前N条记录的常用方法小结
本文实例讲述了SQL Server查询前N条记录的常用方法.分享给大家供大家参考.具体如下: SQL Server查询前N条记录是我们经常要用到的操作,下面对SQL Server查询前N条记录的方法作 ...
- Qt可拖拽排序表格(类似QQ好友分组排序)
1,简介 为了最佳体验,一个拖拽行排序的功能研究了几个小时.效果参考的QQ好友分组的排序. 网上查了下好像没有人发布QT版类似的代码,于是自己动手 QQ好友分组排序效果: 2,效果 这是最终效果图,有 ...
- vue中如何使用vi-for限制遍历的条数?只查询前三条、查询4-6条怎么实现?
" 大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂. " 前言 今天整理个简单的功能,vue中的v-for如何限制遍历输出的数据,比如我想在一个存放10条数据的集合中只输出3条 ...
最新文章
- 程序员必练六大项目:从数据结构到操作系统,计算机教授为你画重点
- 洛谷 P4706 取石子 解题报告
- 算法题3 寻找丑数数值逼近
- 90后,一个即将成为程序员的我
- 使用管道符在PowerShell中进行各种数据操作
- 渗透测试之通过代码审计打点
- Android 如何添加一种锁屏方式
- 风林火山最新系统win11 32位旗舰版v2021.07
- [BZOJ1798][AHOI2009]Seq维护序列 线段树
- iphone如何查看wifi密码_怎么在手机和电脑查看已连接的wifi密码
- 通讯录(结尾附全部代码)
- JS中Ajax的方法和应用
- JAVA实现经纬度转换小数的工具类
- 电子地图“顽疾”难治,会“传染”自动驾驶专用高精地图吗?
- 电动自行车新国标正式发布,推动电池产业转型升级
- 深度学习记录第二篇————Tensor基本操作
- w3wp ash oracle,巧妙使用ASH信息
- Hashtable的深拷贝
- 推荐10款一直在使用的Chrome提效插件
- Opencv测量图片中的物体大小
热门文章
- mysql的配置步骤
- 工作心得_在做算法工程师的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?
- GIS_GDAL java版下载/环境配置/dll配置/API使用文档
- nginx配置虚拟主机-端口号区分/域名区分
- Adobe Reader 2019 Offline Installer, Free Download - Best PDF Reader
- 【转】HEIF图片存储格式探秘
- window 下tomcat 内存设置,bat启动方式的
- 【WC2013】糖果公园
- onload 事件、DOMContentLoaded事件、DOM加载顺序
- Jquery截取中文字符串