获取分组中的第一行

以下表为DimWorkItem表,要查询每个任务每天最新的工时

Id Title ChangedDate Person TodayHours
1 银行卡代扣协议签约 2015/3/2 16:34:21 张三 2
1 银行卡代扣协议签约 2015/3/3 10:14:37 张三 3
1 银行卡代扣协议签约 2015/3/3 15:03:56 张三 2.5
2 密码变更 2015/3/2 09:03:20 李四 4
2 密码变更 2015/3/3 14:40:51 李四 2

select t.Id,t.Title,t.ChangedDate,t.Person,t.TodayHours
  from
(select a.Id,a.Title,a.Person,
    CONVERT(varchar(12) ,a.ChangedDate, 111 ) ChangedDate,
    a.ChangedDate,
    a.TodayHours,

  --按任务ID和更改日期分组,并按更改日期排序,获取第一行
     row_number() over(partition by Id,CONVERT(varchar(12) ,a.ChangedDate, 111 ) order by ChangedDate desc) rk 
  from Tfs_Warehouse.dbo.DimWorkItem a ) t
 where t.rk = 1

查询结果如下:

Id Title ChangedDate Person TodayHours
1 银行卡代扣协议签约 2015/3/2 16:34:21 张三 2
1 银行卡代扣协议签约 2015/3/3 15:03:56 张三 2.5
2 密码变更 2015/3/2 09:03:20 李四 4
2 密码变更 2015/3/3 14:40:51 李四 2
时间: 2024-10-04 12:01:52

获取分组中的第一行的相关文章

循环获取文件中的每一行

举个栗子,大家慢慢体会吧!! eg1: eg2:

获取所有分组中某列最大的行

怎么获取所有分组中某列最大的行?下面用一个例子来说明下: 一共公司有若干员工,每个员工有各自的id, group_id(部门), salary(工资).现在的问题转变为 求公司各部门最高工资的员工 首先明确一个问题,一个部门的若干个员工可能同时拥有最高的工资,需要都列举出来. 看一下员工的数据库表结构(只包含有用的列): Field Type Null Key Default Extra id int(11) NO PRI NULL   group_id int(11) YES   NULL  

dojo中获取表格中某一行的某个值

dojo中经常出现对表格中的某行进行操作,如单击某行修改.删除等.那怎样获取某行的唯一标示呢? 如查询表格中的某列有个userId,并且这个是唯一的,那么可以通过它来访问这一列 具体操作代码如下: var grid = dijit.byId("gridId"); function btnClick(e) { userId = grid._by_idx[e.rowIndex].item.userId; } dojo.connect(grid,"onRowClick",

C# 获取listview中选中一行的值

首先必须要判断listView1.SelectedItems.Count>0或是listview1.SelectedIndices.Count>0,否则第一次点击会选不中.其次,好像itemSelectionChanged或者SelectedIndexChanged事件都可以触发. private void listView1_ItemSelectionChanged(object sender,EventArgs e) { if (listView1.SelectedItems.Count

随机获取oracle数据库中的任意一行数据(rownum)

最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查: 看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候, 我们就可以从先查一下奖品表中可以发的总奖品数,然后通过java的Random类在总奖品数内生成一个随机整数X,然后调用 select * from (select rownum no,id from Table where rownum<=X ) where no >=X 获取出该条奖品,这样获取出来的值

获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)

获取分组后取某字段最大一条记录方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type ); 方法二:(效率次之) select a.* from test a, (select type,max(typeindex) typeindex from test group by type) b where a.type = b.

js获取表格中的数据 以及 表格中checkbox选中一行数据

前言 不知道是不是大家也遇到过类似的表单,但我绝对是第一次见,如下图所示,表单中包含了表格. 上图中的表格数据是根据数据库中学生表而变化的,这增加了获取表中数据的复杂程度,这里仅仅是记录js如何获取数据传值到后端的办法,所以,仅以表格中张三.李四为例. 示例代码 html <div class="modal-body"> <form id="exam-score-add-form" class="smart-form">

获取字符串中某一个字段的数据,GetValueFromStr

gps数据格式为:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A* /********************************************************************** *版权所有 (C)2015, Wuyq. * *文件名称: GetValueFromStr.c *内容摘要:用于演示从gps数据字符串中获取相应的内容 *其它说明:无 *当前版本: V1.0 *作

05. 取SQL分组中的某几行数据

原文:05. 取SQL分组中的某几行数据 对表中数据分组,有时只需要某列的聚合值:有时却需要返回整行数据,常用的方法有:子查询.ROW_NUMBER.APPLY,总体感觉还是ROW_NUMBER比较直观.测试数据: if OBJECT_ID('testGroup') is not null drop table testGroup GO create table testGroup ( ID int identity primary key, UserID int, OrderID int )