SQL中的特殊分组依据(基于后续值)
我想执行一个特殊的GROUPBY语句,在其他编程语言中,我会使用某种循环,但我不知道如何使用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
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