SQL 分组排序分页(大神帮写的膜拜一下)
查询全部:
SELECT P3.ID, P3.Name, P3.AddTime
FROM (SELECT Name, MAX(AddTime) AS MaxAddTime
FROM Product AS P1
GROUP BY Name) AS P2
INNER JOIN Product AS P3 ON P2.Name = P3.Name
ORDER BY P2.MaxAddTime DESC, P3.AddTime DESC, P3.ID DESC
正反TOP方法的分页(每页5行,查第5页,即第21-25行数据)
(1)按要求的顺序取前25行,(2)颠倒过来取前5行,(3)再把顺序颠倒回来
SELECT P5.ID, P5.Name, P5.MaxAddTime
FROM
(SELECT TOP 5 P4.*
FROM
(SELECT TOP 25 P3.ID, P3.Name, P3.AddTime, P2.MaxAddTime
FROM
(SELECT Name, MAX(AddTime) AS MaxAddTime
FROM Product AS P1
GROUP BY Name) AS P2
INNER JOIN Product AS P3 ON P2.Name = P3.Name
ORDER BY P2.MaxAddTime DESC, P3.AddTime DESC, P3.ID DESC) AS P4
ORDER BY P4.MaxAddTime, P4.AddTime, P4.ID) AS P5
ORDER BY P5.MaxAddTime DESC, P5.AddTime DESC, P5.ID DESC
ROW_NUMBER方法(适用于SQL Server 2005以上)
(每页5行,查第5页,即第21-25行数据)
SELECT P4.ID, P4.Name, P4.AddTime
FROM
(SELECT P3.ID, P3.Name, P3.AddTime, ROW_NUMBER() OVER (ORDER BY P2.MaxAddTime DESC, P3.AddTime DESC, P3.ID DESC) AS RN
FROM
(SELECT Name, MAX(AddTime) AS MaxAddTime
FROM Product AS P1
GROUP BY Name) AS P2
INNER JOIN Product AS P3 ON P2.Name = P3.Name) AS P4
WHERE P4.RN BETWEEN 21 AND 25
SQL 分组排序分页(大神帮写的膜拜一下)的更多相关文章
- mongodb group操作 以及管道 aggregate 分组排序分页
分组获取数据: db.express_info.group({ "key":{"express_code":true}, "initial" ...
- 厉害了,Google大神每天写多少行代码?
文章转自开源中国社区,编译自:Quora Quora上有个有趣的问题:Google工程师们每天写多少行代码? Google 的 AdMob 全栈工程师 Raymond Farias 在 Quora 发 ...
- SQL分组排序后取每组最新一条数据的另一种思路
在hibernate框架和mysql.oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据. 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条 ...
- Unity中的ShaderToys——将大神们写的shader搬到unity中来吧
http://lib.csdn.net/article/unity3d/38699 这篇文章翻译自国外的一篇文章(这里是原文链接),正在使用unity的你是否在shader toy上发现很多牛逼哄哄的 ...
- 求大神帮解答calendar日期插件的问题
小颖最近公司的项目里用了一款日期插件 calendar.js 但是在用的过程中遇到了难题,就是当日期只需要选择具体的月份就可以了,不需要再选具体日期时,小颖解决不了,只能让它默认显示出月份,但是月 ...
- 大神Java8写了一段逻辑,我直呼看不懂
业务背景 首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传. 而第三方接口返回的数据是 JSON 格式的,其中 ...
- 今天看了shell大神的写的一个统计脚本
通过nginx日志统计接口耗时排行 grep '/bigbox?' access_log | awk '{print $7"&process="$NF}'| sed -r ...
- SQL 分组排序、CASE...WHEN...、是否为空 查询
select Id,CustomerCode,CustomerName,CreateId,CreateName,Phone,StatusName,(case when phone is not nu ...
- spring boot 错误,求大神帮解决
Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attr ...
随机推荐
- mysql日志文件
mysql的数据文件夹里出现mysql-bin日志文件,通过my.cnf注释掉log后,是否可以删除了? 参考 http://database.51cto.com/art/201107/278988. ...
- 学习Linux第二天
1.Linux目录: 保存系统命令:根目录下的bin和sbin,usr下的bin和sbin /etc:保存配件 /usr:系统软件资源目录 /proc:系统内存分配目录,直接写入内存的 /var:保存 ...
- 传说中的Markov"不过如此”
因为看一篇题为 Passive Measurement of Interference in WiFi Network with Application in Misbehavior Detectio ...
- md RAID
md: mdadm: 将任何块设备做成RAID 模式化的命令:1.创建模式 -C 专用选项: -l: 级别 -n #: 设备个数 -a {yes|no}: 是否自动为其创建设备文件 -c: CHUNK ...
- 51nod 1640 天气晴朗的魔法 最小生成树
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 题解: 先求最小生成树,记录最大边. 然后求最大生成树 ...
- EXTJS学习笔记
由于公司统一决策,决定使用EXTJS作为前台的开发UI框架,所以从今天开始学习EXTJS,对学习过程中遇到的问题做记录. 首先第一个问题:为什么要用ExtJS作为公司开发基础架构? 推荐一篇文章: ...
- NYOJ-44 子串和 AC 分类: NYOJ 2014-01-04 22:53 154人阅读 评论(0) 收藏
作为菜鸟一枚,对子串和的代码完全就是硬算 的..结果是TLE #include<stdio.h> int jh(int x,int y,int num[],int sum[]); int ...
- SCI杂志更名时,如何计算影响因子?
- jquery css 简单笔记
内容 要点:清空表单中所有数据,除去 button,submit,reset,hidden 的数据 $(':input','#myform') .not(':button, :submit, :res ...
- SPOJ 3643 /BNUOJ 21860 Traffic Network
题意:现在已有m条单向路,问在给你的k条双向路中选择一条,使得s到t的距离最短 思路:设双向路两端点为a,b;长度为c. s到t的有三种情况: 1:原本s到t的路径 2:从s到a,a到b,b再到t的路 ...