sql-分组排序
我们有一张数据表,需要按照【类别】分组按照【时间】排序,并分组显示各自的序号。
表Archive
| ArchiveId | varchar(30) | 文章编号非数字 |
| CategoryId | int | 文章分类Id |
| StatusId | int | 状态,-1表示删除,0表示新建,1表示启用 |
| PubTime | DateTime | 发布时间 |
select top 100 ArchiveId,StatusId,PubTime,CategoryId
from Archive
where StatusId>=0
order by PubTime desc
查询结果:

--子表
with asm as(select ArchiveId,StatusId,PubTime,CategoryId from Archive where StatusId>=0) --查询-------------------
select bb.ArchiveId,bb.StatusId,bb.PubTime,bb.CategoryId,
--序号列生成
(select COUNT(1) from asm where bb.CategoryId=asm.CategoryId and bb.PubTime>=asm.PubTime) rowid
--插入临时表
into #temp from Archive bb
where bb.StatusId>=0
查询临时表:
select top 200 * from #temp order by CategoryId desc,rowid asc
见查得结果:

sql-分组排序的更多相关文章
- SQL分组排序后取每组最新一条数据的另一种思路
在hibernate框架和mysql.oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据. 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条 ...
- SQL 分组排序分页(大神帮写的膜拜一下)
查询全部: SELECT P3.ID, P3.Name, P3.AddTimeFROM (SELECT Name, MAX(AddTime) AS MaxAddTime FROM Product AS ...
- SQL 分组排序、CASE...WHEN...、是否为空 查询
select Id,CustomerCode,CustomerName,CreateId,CreateName,Phone,StatusName,(case when phone is not nu ...
- sql分组排序取top
写法1: use anypay; select tr.* from (select task_code, max(created_at) as cal from task_log group by t ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- SQL语句分组排序,多表关联排序
SQL语句分组排序,多表关联排序总结几种常见的方法: 案例一: 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列? 分析:单个表内的多个字段排序,一般可以直接用逗号分割实现. select ...
- mysql分组排序加序号(不用存储过程,就简简单单sql语句哦)
做前端好长时间了,好久没动sql了.在追一个喜欢的女孩,做测试的,有这么个需求求助与本屌丝,机会难得,开始折腾起来,配置mysql,建库,建表.... 一 建表 CREATE TABLE `my_te ...
- sql server 中判断分组排序的使用示例
现在需要查询一组数据,是对一列字段(column01)的数据分范围查询后分组排序: select (case when [column01] >0 AND [column01]<= 500 ...
- 《SQL 进阶教程》 自连接分组排序:练习题1-2-2
分组排序 SELECT d1.district, d1. NAME, (SELECT COUNT(d2.price) FROM district_products d2 WHERE d2.price ...
- sql 分组取最新的数据sqlserver巧用row_number和partition by分组取top数据
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...
随机推荐
- cannot load flash device description
http://www.openedv.com/forum.php?mod=viewthread&tid=50048&highlight=MDK%D3%C3JTAG%2B%B7%C2%D ...
- c51
ORG 0000HMOV R7,#08HMOV 83H,#01HMOV R4,#00HAA1:CLR P3.6 CLR P3.4 SETB P3.6 DJNZ R7,AA1AA2:JB P3.0,AA ...
- PHP连接MySQL数据库
PHP连接MySQL数据库 既然现在你看到了这篇文章,说明你肯定知道PHP和MySQL是怎么一回事,我就不啰嗦了.但为什么你还要继续阅读此文呢?可能是以前你习惯复制粘贴一些代码,并没有真正弄懂代码的含 ...
- Python列表
列表不同于字符串和元组:列表是可变的--可以改变列表的内容 1.列表函数 1.list(x)函数(其实是一种类型,而不是一个真正意义上的函数) 转化为列表,其中x可以是其他序列 可以用''.join( ...
- Android Volley gives me 400 error
本文来自:http://stackoverflow.com/questions/21739276/android-volley-gives-me-400-error 本人是根据文中的其中一方法: I ...
- asdddddddddddddddd
<a href="www.baidu.com">sad</a>
- Office word 2013中直接调用MathType的方法
Office word 2013中直接调用MathType的方法 | 浏览:4403 | 更新:2014-02-20 14:45 | 标签: word 使用Office word 2013的用户肯定早 ...
- BHP Net Tool
#导入需要用到的包 import sys import getopt import threading import socket import subprocess #定义全局变量 listen = ...
- mysql之替换字符串
update `wp_posts` set `post_content`=REPLACE(`post_content`,'localhost/linkcp','www.linkcp.cn') wher ...
- [NOIP2011] 聪明的质检员(二分答案)
题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...