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
/*
fID fdate fvalue
1 2013-08-11 15:18:00 0.00
*/