select str2,dense_RANK() over (partition by str2 order by str2)
from XGS_REGISTER
where status<=90
and ACTION >= 0
and ACTION <= 29
and status >= 60
开始的几条记录如下:
1 f 1
2 longxingtianxia 1
3 mianhuatang 1
4 mianhuatang 1
5 mianhuatang 1
6 mianhuatang 1
7 mianhuatang 1
8 mianhuatang 1
9 mianhuatang 1我也要的效果是: 在action >=29 与action<=60的条件,str2只有几十个不同值,但str2的这几十个值,其中每个值都有好多
,我想找出这几十个不同的str2 还有个问题 为什么dense_RANK() 出来的全会是1 ,应该根据str2不同,就会有不同值
from XGS_REGISTER
where status<=90
and ACTION >= 0
and ACTION <= 29
and status >= 60
开始的几条记录如下:
1 f 1
2 longxingtianxia 1
3 mianhuatang 1
4 mianhuatang 1
5 mianhuatang 1
6 mianhuatang 1
7 mianhuatang 1
8 mianhuatang 1
9 mianhuatang 1我也要的效果是: 在action >=29 与action<=60的条件,str2只有几十个不同值,但str2的这几十个值,其中每个值都有好多
,我想找出这几十个不同的str2 还有个问题 为什么dense_RANK() 出来的全会是1 ,应该根据str2不同,就会有不同值
from XGS_REGISTER
where status<=90
and ACTION >= 0
and ACTION <= 29
and status >= 60 换成这样子!
这里有问题。按str2分组,又按str2排序dense_rank,所以都为1
将这个条件的str2换上别的字段,如果不需要的话,可以去掉不写。按卡西欧的写成1也一样
按str2分组,又按str2排序dense_rank,所以都为1
这个怎么理解
2 longxingtianxia 1
3 mianhuatang 1
4 mianhuatang 1
5 mianhuatang 1
6 mianhuatang 1
7 mianhuatang 1
8 mianhuatang 1
9 mianhuatang 1 你将dense_rank改成row_number看看。也许就能理解了。这里有一组相同的str2 :mianhuatang ,并列第一,用dense_rank就都是1了。或者将order by str2改成order by rownum.如果需要按str2分组的话