Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server中最新的两个日期时间_Sql_Sql Server_Datetime - Fatal编程技术网

SQL Server中最新的两个日期时间

SQL Server中最新的两个日期时间,sql,sql-server,datetime,Sql,Sql Server,Datetime,我有下表 CREATE TABLE [dbo].[events] ( [event_id] [nvarchar](50) NULL, [event_timestamp] [datetime] NULL, [reading] [int] NULL ) ON [PRIMARY] 使用以下数据和结果 表:活动 结果应该是 所需结果: event_id event_timestamp Reading ---------------------------------

我有下表

CREATE TABLE [dbo].[events]
(
    [event_id] [nvarchar](50) NULL,
    [event_timestamp] [datetime] NULL,
    [reading] [int] NULL
) ON [PRIMARY]
使用以下数据和结果

表:活动

结果应该是

所需结果:

event_id    event_timestamp    Reading
--------------------------------------
1200        14-Jun-15          1500
1200        13-Jun-15          1430.7
1330        14-Jun-15          1490
1330        13-Jun-15          1300
1347        14-Jun-15          2700
1347        13-Jun-15          2400
具有行数功能:

with cte as(select *, row_number() over(partition by event_id 
                         order by event_timestamp desc) rn from events)
select * from cte where rn <= 2

@Giorgi Nakeuri,非常感谢你的帮助,我知道了

with cte as(select itemid, dt, info, row_number() over(partition by itemid order by dt desc) rn 
from (SELECT itemid, dt, MAX(info) info from(
SELECT event_item_id itemid,CONVERT(VARCHAR, event_timestamp, 111) dt, Reading info
FROM dbo.events WHERE CONVERT(VARCHAR, event_timestamp, 111) IN (  
SELECT Distinct(CONVERT(VARCHAR, event_timestamp, 111))FROM dbo.events 
WHERE Reading !='0.000000')
) tbl1 GROUP BY itemid, dt
) tbl)
select * from cte where rn <= 2 ORDER BY itemid DESC, dt DESC

使用cte asselect itemid,dt,info,row_number overpartition by itemid order by dt desc rn from SELECT itemid,dt,MAXinfo info from SELECT event_item_id itemid,CONVERTVARCHAR,event_timestamp,111 dt,event_additional_info from dbo.events其中CONVERTVARCHAR,event_timestamp,111 IN SELECT DistinctCONVERTVARCHAR,event_timestamp,111来自dbo.events,其中event_附加信息!='0.000000“tbl1按项目ID分组,dt tbl从cte中选择*,其中rn
with cte as(select itemid, dt, info, row_number() over(partition by itemid order by dt desc) rn 
from (SELECT itemid, dt, MAX(info) info from(
SELECT event_item_id itemid,CONVERT(VARCHAR, event_timestamp, 111) dt, Reading info
FROM dbo.events WHERE CONVERT(VARCHAR, event_timestamp, 111) IN (  
SELECT Distinct(CONVERT(VARCHAR, event_timestamp, 111))FROM dbo.events 
WHERE Reading !='0.000000')
) tbl1 GROUP BY itemid, dt
) tbl)
select * from cte where rn <= 2 ORDER BY itemid DESC, dt DESC