SQL中的特殊分组依据(基于后续值)

SQL中的特殊分组依据(基于后续值),sql,group-by,Sql,Group By,我想执行一个特殊的GROUPBY语句,在其他编程语言中,我会使用某种循环,但我不知道如何使用sql解决这个问题。希望你们能帮忙。样本数据位 NR date Code 2 1-1-2013 6 2 1-1-2013 6 2 3-1-2013 6 2 4-1-2013 7 2 5-1-2013 6 2 5-1-2013 5 3 1-1-2013 1 3 2-1-2013 1 3 2-1-2013 6 3

我想执行一个特殊的GROUPBY语句,在其他编程语言中,我会使用某种循环,但我不知道如何使用sql解决这个问题。希望你们能帮忙。样本数据位

NR  date    Code
2   1-1-2013    6
2   1-1-2013    6
2   3-1-2013    6
2   4-1-2013    7
2   5-1-2013    6
2   5-1-2013    5
3   1-1-2013    1
3   2-1-2013    1
3   2-1-2013    6
3   3-1-2013    7
我想做一个关于NR和代码的分组。但是,我不想对不成功的代码进行分组(它们按NR和日期排序)。我认为,期望的输出将清楚地表明:

NR  Code    #
2   6       3
2   7       1
2   6       1
2   5       1
3   1       2
3   6       1
3   7       1
在此之后,我想将其转换为以下格式(可能是另一个问题,但说明我需要解决上述问题):

如果我没有提供一个好的例子,请告诉我,这是我关于sql的第一个问题(通过使用SO了解了很多R)


此命令应满足您的第一个期望输出。

您使用的是什么数据库管理系统(即SQL Server、MySQL等)?如果RDBMs中的行没有顺序,那么在什么意义上一条记录成功另一条记录?此外(并非无关),主键是关系表的先决条件。@Jeff抱歉,好问题:Microsoft SQL 2008。此外,因为我是新手,所以我并不真正了解MySQL中的索引。。说到你的观点,当代码发生变化时(按日期排序),一个会取代另一个。另外,如果您知道通过添加ID或索引之类的方法来解决问题,我会查看所有可能性否,它不知道。请更仔细地查看OP所需的输出,尤其是代码6的两个实例。@Jeff,你说得对,我的回答可能是fast。下次我会更仔细地研究这个问题。
NR  Code_string #_string
2   6,7,6,5     3,1,1,1
3   1,6,7       2,1,1
select NR, Code, count(*) from yourdatabasename
group by NR, Code
order by NR, Code