SQL-如果值为真,则指定相同的值如果未指定增量1值
我有下面的表格,其中对于V1列,我想分配相同的值是SQL-如果值为真,则指定相同的值如果未指定增量1值,sql,db2,Sql,Db2,我有下面的表格,其中对于V1列,我想分配相同的值是科目值是相同的,如果不是,我想分配1个增量值。 类似于excel的内容:=if(B2=B1、C1、C1+1) 谢谢大家! 对于未来的读者,这里有一个更通用的解决方案(数据库不可知),因为某些(尽管非常流行)数据库方言(例如MySQL、SQLite、MS Access)不幸还没有,因此没有Over()子句: select ccr, account, dense_rank() over (order by account) as V1 from t
科目
值是相同的,如果不是,我想分配1个增量值。
类似于excel的内容:=if(B2=B1、C1、C1+1)
谢谢大家! 对于未来的读者,这里有一个更通用的解决方案(数据库不可知),因为某些(尽管非常流行)数据库方言(例如MySQL、SQLite、MS Access)不幸还没有,因此没有
Over()
子句:
select ccr, account, dense_rank() over (order by account) as V1
from t
SELECT ccr, account,
(SELECT Count(*)
FROM
(SELECT DISTINCT account FROM tableName) As t2
WHERE t2.account <= t1.account) As V1
FROM tableName t1
哪个数据库引擎?@Douglas Barbin-DB2Why您想要这些信息?你想用它做什么?另外,在看了你的另一个问题之后,从更大的角度来看,你想做什么(可能想作为一个单独的问题发布)?完全模仿Excel通常不是处理数据的最佳方式。我感觉你把一项任务分解得有点过分了@Clockwork Muse——我有两个专栏,每个专栏都有超过100000条记录。第一列表示客户代码,第二列表示该客户的帐号。我在列中的关系是多对多的,一个客户可以有多个帐户,两个或更多客户可以有相同的帐户。基于此,我必须在第三列中添加一个值,以便对所有连接的客户端及其所有帐户进行分组。
SELECT ccr, account,
(SELECT Count(*)
FROM
(SELECT DISTINCT account FROM tableName) As t2
WHERE t2.account <= t1.account) As V1
FROM tableName t1
ccr account V1
1 100 1
2 100 1
1 101 2
1 102 3
2 200 4
3 200 4
16 200 4
18 200 4