利用sql查询每组第一个数据

来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:27 点击:
今天在一个.NET群里看到有个人问如何查找到每组第一个人的全部信息,当时自己也在忙着公司的和学校的需求报告,但是自己也是希望尝试一下的,就让他先把数据库给我,在完成了该完成任务的时候,我还是很乐意的帮助那些需要帮助的人了,可是还是挺悲剧的,我的Sql2008打不开他的数据库(因为Sql2008支持智能提示,所有现在用的是Sql2008)。跟他交流了一下,才知道数据库没有多少数据,那我还不如自己写脚本来解决这个问题。当然还是脱离不了互联网的,最好把写好的代码和大家分享一下。
 
题目大概的意思是这样的,找出每组老师(Teacher)的最大的Uid的数据。
 1 --创建一个数据库
 2 CREATE DATABASE MyStudySql
 3 GO
 4
 5 --创建表
 6 CREATE TABLE DOGroupByFirstTable(
 7     [Uid] INT IDENTITY NOT NULL PRIMARY KEY,     --主键
 8     Student nvarchar(10) NOT NULL,                --学生姓名
 9     Teacher nvarchar(10) NOT NULL                 --老师姓名
10 )
11 GO
12
13 --插入数据
14 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小童','小吴');
15 GO
16 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小童','小王');
17 GO
18 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小童','小黄');
19 GO
20 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小林','小吴');
21 GO
22 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小林','小王');
23 GO
24 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小林','小黄');
25 GO
26 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小徐','小吴');
27 GO
28 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小徐','小王');
29 GO
30 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小徐','小黄');
31 GO
32 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小黑','小吴');
33 GO
34 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小白','小王');
35 GO
36 INSERT INTO DOGroupByFirstTable(Student,Teacher) VALUES('小兰','小黄');
37 GO
38
39 --测试插入的数据
40 SELECT * FROM DOGroupByFirstTable
41
42 --查找每组老师中最大的Uid
43 SELECT *
44 FROM DOGroupByFirstTable AS temp
45 WHERE temp.Student IN
46        (SELECT TOP 1 Student               
47         FROM DOGroupByFirstTable
48         WHERE temp.Teacher=[Teacher]           --这里是以老师为相等,就是你需要分组的对象
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
  • 如何将多个SQL查询统计结果一次显示出来
  • SQL小技巧系列 --- 行转列合并
  • sql server 列转行
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1