你的情况可以直接MAX GROUP BY
SELECT 用户,设备,MAX( 时间)
FROM TB
GROUP BY 用户,设备
SELECT 用户,设备,MAX( 时间)
FROM TB
GROUP BY 用户,设备
解决方案 »
- 想优化一下代码
- sql行列转换
- 存储过程中执行往临时表插入记录时,象死循环一样
- 如果用script语句导出表与表之间的关系,然后又怎么用script语句倒入表与表之间的关系,多谢大家了,急~~~
- 用“Sql Server Enterprise Manager”连接上远程的SQL SERVER 怎么把数据库文件.MDF和.LDF备份到自己本地?
- 找一个这样的视图
- 用一條SQL語句怎么實現?
- 重金求子 查询 ,, ############# 100% 结贴
- 高分求救一个查询问题
- SQL server数据库用网页形式远程维护时,数据填入提交后最近为什么老出现问题,无法打开网页?
- MS SQL Server 2008在恢复中断后,打开不了数据
- 关于sql数据累加后取值问题
用户 设备 时间 类型 状态
A aaa getdate() 0 正常
A aaa getdate()-1 1 报停
B bbb getdate() 1 报停
B bbb getdate()-1 0 正常
我想获得的结果集是:
用户 设备 时间 类型 状态
A aaa getdate() 0 正常
B bbb getdate() 1 报停
SELECT ROW_NUMBER()OVER(PARTITION BY 用户,设备 ORDER BY 时间 DESC)RN
,*
FROM TB
)T
WHERE RN=1SQL 2005+有效
from TB a
where not exist (select * from TB where 用户=a.用户 and 时间 > a.时间)
from Tb as a
where not exists(select 1 from Tb as b where b.用户=a.用户 and a.设备=b.设备 and b.时间 > a.时间)