--写个参考,希望能有用。 create table tb(num int,no int) insert into tb select 1, null union all select 2, null union all select 3, null union all select 4, null union all select 3, null union all select 2, null union all select 1, null union all select 2, null union all select 3, null union all select 4, null union all select 5, null union all select 6, null union all select 7, null union all select 6, null union all select 5, null union all select 4, null union all select 3, null union all select 4, null union all select 5, null union all select 6, null union all select 5, null union all select 4, null union all select 3, null union all select 4, null union all select 5, null
declare @num1 int,@num2 int set @num1=0
update tb set no=@num1, @num1=(case when num>=@num2 then @num1 else @num1+1 end),@num2=numselect MIN(num)[min],MAX(num) [max] from tb group by no having COUNT(*)>1/* min max ----------- ----------- 1 4 1 7 3 6 3 5
是每条波动曲线的最高点的值和最低点的值晕,如果是这个要求,你觉着还很困难吗?? max,min 和曲线没啥关系你的曲线就是在曲里拐弯,最大值和最小值都是不会变滴
--写个参考,希望能有用。
create table tb(num int,no int)
insert into tb
select 1, null union all
select 2, null union all
select 3, null union all
select 4, null union all
select 3, null union all
select 2, null union all
select 1, null union all
select 2, null union all
select 3, null union all
select 4, null union all
select 5, null union all
select 6, null union all
select 7, null union all
select 6, null union all
select 5, null union all
select 4, null union all
select 3, null union all
select 4, null union all
select 5, null union all
select 6, null union all
select 5, null union all
select 4, null union all
select 3, null union all
select 4, null union all
select 5, null
declare @num1 int,@num2 int
set @num1=0
update tb set no=@num1,
@num1=(case when num>=@num2 then @num1 else @num1+1 end),@num2=numselect MIN(num)[min],MAX(num) [max] from tb group by no having COUNT(*)>1/*
min max
----------- -----------
1 4
1 7
3 6
3 5
有点意思!!
我在研究一下!