Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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解决这个问题?_Sql_Sql Server - Fatal编程技术网

如何用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;