当前位置:  数据库>sqlserver

sql server分组查询与排序的例子

    来源: 互联网  发布时间:2014-08-29

    本文导语:  有这样一张表:   代码示例: create table topic ( Topicid int, title nvarchar(10), boardid int, addtime datetime  ) 数据如下:   代码示例: insert topic select    1,       'abc',       100,     '2007-1-1' union all select   2,       'era',...

有这样一张表:
 

代码示例:
create table topic
(
Topicid int,
title nvarchar(10),
boardid int,
addtime datetime 
)

数据如下:
 

代码示例:
insert topic select
   1,       'abc',       100,     '2007-1-1'
union all select   2,       'era',       101,     '2007-1-2'
union all select   3,       'avx',       102,     '2007-1-3'
union all select   4,       'zcv',       100,     '2007-1-4'
union all select   5,       'jhv',       100,     '2007-1-5'
union all select   6,       'ztw',       103,     '2007-1-6'
union all select   7,       'xcv',       102,     '2007-1-7'
union all select   8,       'zww',       104,     '2007-1-8'
union all select   9,       'zqw',       105,     '2007-1-9'
union all select   10,      'zti',       103,     '2007-1-10'

要求,按照boardid分组,按照datetime排序,取出前五条。

sql语句:
 

代码示例:
select top 5 boardid from
(
    select boardid,max(addtime) as addtime
    from topic
    group by boardid
) tmp order by addtime desc

解释:
1,group by 和 order by 不能同时使用,所以当要分组后再排序的时候就要嵌套(先分好组再排序)
2,但是在group by的时候,你要查询的字段必须是你分组的字段,如果group by 两个字段,分组时是按照两个字段同时相等的分组,因此达不到自己想要的结果。
但是使用一个字段分组,要查到两个字段就得:
 

代码示例:
   select boardid,max(addtime) as addtime
    from topic
    group by boardid
 

3,最后把分组后的结果在排序:因为在分组查询时没有查出addtime字段就没办法order by addtime desc。

在日常的开发中,sql server中用于分组查询与排序的需求还是很多的,建议大家好好掌握下这块内容。


    
 
 

您可能感兴趣的文章:

  • SQL分组排序去除重复实例
  • Sql Server多行合并一行 sql分组统计
  • sql分组查询(按组内个数排序)
  • SQL分组排序去重复的小实例
  • SQL分组统计简单例子
  • 显示同一分组中的其他元素的sql语句
  • sql中获取分组排序后数据方法实例
  • SQL语句分组获取记录的第一条数据的方法
  • SQL分组查询实例解析
  • sql语句获取分组排序后数据
  • sql server分组排序之row_number()over函数的使用
  • Sql Server 分组统计并合计总数(WITH ROLLUP用法)
  • sql分组排序与分组统计技巧
  • sql server 2000/2005/2008中一句话完成分组后加序号
  • sql获取分组排序后数据的脚本
  • sql server数据分组查询脚本分析
  • SQL分组排序与分组查询统计
  • Sql Server 分组统计并合计总数及WITH ROLLUP应用
  • 以数据库字段分组显示数据的sql语句(详细介绍)
  • Sql Server:多行合并成一行,并做分组统计的两个方法
  • 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
  • 有关sql server的排序问题
  • Oracle 中文字段进行排序的sql语句
  • 大家讨论一下EJB QL的功能,和标准SQL相比,缺少什么功能?比如排序功能等。
  • SQL-ORDER BY 多字段排序(升序、降序)
  • sql查询表中根据某列排序的任意行语句
  • 在sql中不指定Order by排序是按照主键吗
  • sql Server使用ROW_NUMBER时不排序的实例代码
  • sql多条件多字段排序(图文教程)
  • sql union查询与排序的例子
  • SQL字符型字段按数字型字段排序实现方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql server简单查询的例子(sql入门)
  • sql server 使用ntile获取数据的例子
  • Sql Server一次更新多列数据的例子
  • SQL SERVER导入、导出文本文件的例子
  • SqlServer中用exec处理sql字符串中含有变量的小例子
  • sql语句提取括号中文字的例子
  • 我急需一个JSP+sql2000编写的论坛,哪位能提供一个完整的例子,不胜感激----在线等待
  • sql自连接查询的例子(图文)
  • sql2005递归查询的例子
  • 拼接SQL字符串与日期模糊查询的例子
  • Sql Server 删除主键与重建主键的例子
  • Sql Server 数据纵列转横列的例子
  • sql 插入单引号、添加、删除字段的例子
  • sql 游标的使用—游标FOR循环小例子
  • 用t-sql语句完整备份数据库的例子
  • sql server日期格式化处理的例子
  • sql通配符三个例子
  • sql server 跨服务器查询的例子
  • sql server 跨服务器查询的小例子
  • SQL 实现统计业务的例子
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3