这是一个模仿我的场景的示例表:
COL_1 COL_2
1 a
2 a
9 b
8 b
11 b
我有两列,其中第1列具有不同的数值,第2列表示不同的类(a,b,c等)。在第3列中,我想根据第1列中的最大值/最低值对每个类进行计数并匹配0/1数。因此,如果在我的示例中,“a”只有两个值(在我们的示例中为1) 2)它们应从0到1计数(其中0代表最低数字,1代表最大数字1)。如果b类由3个条目表示,我希望它们根据“b”类中第1列的最大/最小数字匹配0/1/2个数字。
在我的询问后,我想要有这样的事情:
COL_1 COL_2 COL_3
1 a 0
2 a 1
9 b 1
8 b 0
11 b 2
所以,换句话说,我想要一个查询,它查看我们在第2列中有多少重复项,并根据它们在第1列中的表示,给出从最低到最大(其中0最低)的值。
感谢任何帮助我的人。
*我正在使用MS SQL,如果这会有所不同。
答案 0 :(得分:2)
select
col_1,
col_2,
row_number() over(
partition by col_2 order by col_1
) - 1 as col3
from yourtablename