sql - Help to the way to write a query for the requirement -
i need write sql-server query don't know how solve. have table realtimedata data:
time | value 4/29/2009 12:00:00 | 3672.0000 4/29/2009 12:01:00 | 3645.0000 4/29/2009 12:02:00 | 3677.0000 4/29/2009 12:03:00 | 3634.0000 4/29/2009 12:04:00 | 3676.0000 // eod of day "4/29/2009" 4/30/2009 12:00:00 | 3671.0000 4/30/2009 12:01:00 | 3643.0000 4/30/2009 12:02:00 | 3672.0000 4/30/2009 12:03:00 | 3634.0000 4/30/2009 12:04:00 | 3632.0000 4/30/2009 12:05:00 | 3672.0000 // eod of day "4/30/2009" 5/1/2009 12:00:00 | 3673.0000 5/1/2009 12:01:00 | 3642.0000 5/1/2009 12:02:00 | 3672.0000 5/1/2009 12:03:00 | 3634.0000 5/1/2009 12:04:00 | 3635.0000 // eod of day "5/1/2009"
i want eod's data of days exist in table. (eod = end of day). sample's data, need reture table following:
time | value 4/29/2009 | 3676.0000 4/30/2009 | 3672.0000 5/1/2009 | 3635.0000
note: write comment can know eod. , sql server version 2005.
note: data in realtimedata table large more 400.000 rows. please me write in optimization.
please me solve problem. thanks.
with rankedrealtimedata ( select *, row_number() on ( partition convert(varchar(10), [time], 121) order time desc) rn realtimedata ) select * rankedrealtimedata rn=1;
Comments
Post a Comment