读书人

mssql急需找到按fdate分组后fvalue排序

发布时间: 2013-08-13 16:43:28 作者: rapoo

mssql需要找到按fdate分组后fvalue排序后前10%的行
CREATE TABLE temp1(fID [varchar](150) not NULL,
[fdate] [smalldatatime] not NULL,
[fvalue] [decimal](8, 2) NULL
)
需要找到按fdate分组后fvalue排序后前10%的行 ,
mssql语句怎么写?求助 MS?SQL
[解决办法]
sql2005开始的rownumber()支持了
[解决办法]

CREATE TABLE temp1(fID [varchar](150)  not NULL,
[fdate] smalldatEtime not NULL,
[fvalue] [decimal](8, 2) NULL
)
INSERT TEMP1
SELECT 1, GETDATE(), 0 UNION ALL
SELECT 2, GETDATE()+2, 0 UNION ALL
SELECT 3, GETDATE()+3, 0 UNION ALL
SELECT 4, GETDATE()+4, 0 UNION ALL
SELECT 5, GETDATE()+5, 0 UNION ALL
SELECT 6, GETDATE()+6, 0 UNION ALL
SELECT 7, GETDATE()+7, 0 UNION ALL
SELECT 8, GETDATE()+8, 0 UNION ALL
SELECT 9, GETDATE()+9, 0 UNION ALL
SELECT 10, GETDATE()+10, 0

SELECT TOP(10)PERCENT*
FROM TEMP1
ORDER BY fdate

/*
fIDfdatefvalue
12013-08-11 15:18:000.00
*/

读书人网 >SQL Server

热点推荐