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 ...
随机推荐
- Linux关机命令总结
在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的. shutdown命令可以安全地关闭或重启Linux系统,它 ...
- libevent使用
(sudo apt-get install libevent-dev) 1:安装libevent 用wget指令直接下载libevent:# wget http://www.monkey.org/~p ...
- cocos2.2.3中创建精灵对象的三大类方法
1.众生相,皆精灵 2.精灵的类继承关系 class CCSprite : public CCNode, public CCNodeRGBA, public CCTextureProtocol 3.创 ...
- 在VisualStudio 2012上使用MVC3出现错误的解决办法
1. 错误: 找不到方法:“System.Collections.Generic.Dictionary`2<System.String,BlockParser> System.Web.Ra ...
- [问题]C# 结构体对齐:如何将变长byte数组对齐
[StructLayout(LayoutKind.Sequential,Pack=1)] struct Report_Read_Parameter { byte Confirmation; byte ...
- Oracle 临时事务表 全局临时表_global temporary table
所有的操作都在一个事务里,事务提交后,此表清空,特别适合做插入删除频率特别高的临时表操作,比如插入完数据就开始查询,查询完就删掉等,用完就扔! 临时表分事务级临时表和会话级临时表. 事务级临时表只对当 ...
- 基于HOOK和MMF的Windows密码渗透技术
随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事.密码的渗透与反渗透在此领域表现的愈演愈烈.本文深入分析了各个版本Windows密码的特点,尤其是针对windws2K/XP安全性提高的情 ...
- PHP防止SQL注入与几种正则表达式讲解
注入漏洞代码和分析 代码如下: <?php function customerror($errno, $errstr, $errfile, $errline) { echo <b& ...
- zend studio 10 字体,颜色,快捷键等相关设置
一.修改字体 没想到zend studio 10中对中文显示不太好看,似乎有点小了.修改如下:打开 Window->Preferences->General->Appearance- ...
- PHP输出中文乱码的问题
用echo输出的中文显示成乱码, 其实应该是各种服务器脚本都会遇到这个问题, 根本还是编码问题, 一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8 <meta http-equi ...