如何用SQL解决这个问题?
我想解决这个问题: 我有这样一个表或数据:如何用SQL解决这个问题?,sql,sql-server,Sql,Sql Server,我想解决这个问题: 我有这样一个表或数据: id date 1 2014-07-01 00:00:00.000 2 2014-07-01 00:00:00.000 3 2014-07-01 00:00:00.000 4 2014-07-03 00:00:00.000 5 2014-07-03 00:00:00.000 6 2014-07-03 00:00:00.000 7 2014-07-03 00:00:00.000 8 2014-07-05 00:00:00
id date
1 2014-07-01 00:00:00.000
2 2014-07-01 00:00:00.000
3 2014-07-01 00:00:00.000
4 2014-07-03 00:00:00.000
5 2014-07-03 00:00:00.000
6 2014-07-03 00:00:00.000
7 2014-07-03 00:00:00.000
8 2014-07-05 00:00:00.000
9 2014-07-05 00:00:00.000
10 2014-07-05 00:00:00.000
11 2014-07-05 00:00:00.000
12 2014-07-05 00:00:00.000
13 2014-07-05 00:00:00.000
我想按日期分组,然后按百分比划分这些分组。最好的办法可能是添加额外的列,以便如下所示:
id date group
1 2014-07-01 00:00:00.000 1
2 2014-07-01 00:00:00.000 1
3 2014-07-01 00:00:00.000 2
4 2014-07-03 00:00:00.000 1
5 2014-07-03 00:00:00.000 1
6 2014-07-03 00:00:00.000 2
7 2014-07-03 00:00:00.000 2
8 2014-07-05 00:00:00.000 1
9 2014-07-05 00:00:00.000 1
10 2014-07-05 00:00:00.000 1
11 2014-07-05 00:00:00.000 2
12 2014-07-05 00:00:00.000 2
13 2014-07-05 00:00:00.000 2
谁能帮我一下,谢谢 假设您希望将每个日期的一半行放在单独的组中:
DECLARE @SampleData TABLE(id int, date date)
INSERT INTO @SampleData VALUES
(1 , '2014-07-01 00:00:00.000')
,(2 , '2014-07-01 00:00:00.000')
,(3 , '2014-07-01 00:00:00.000')
,(4 , '2014-07-03 00:00:00.000')
,(5 , '2014-07-03 00:00:00.000')
,(6 , '2014-07-03 00:00:00.000')
,(7 , '2014-07-03 00:00:00.000')
,(8 , '2014-07-05 00:00:00.000')
,(9 , '2014-07-05 00:00:00.000')
,(10 , '2014-07-05 00:00:00.000')
,(11 , '2014-07-05 00:00:00.000')
,(12 , '2014-07-05 00:00:00.000')
,(13 , '2014-07-05 00:00:00.000');
SELECT
id
,date
,(ROW_NUMBER() OVER (PARTITION BY date ORDER BY date) % 2) + 1 AS [DateGroup]
FROM @SampleData;