Sql 如何计算两个活动条目之间的保留条目数
我想计算两个活动条目之间的保留条目数Sql 如何计算两个活动条目之间的保留条目数,sql,oracle,Sql,Oracle,我想计算两个活动条目之间的保留条目数 S.NO DATA STATUS ----------------------------- 1 B active 2 D hold 3 C active 4 H hold 5 j hold 6 k hold 7 l hold
S.NO DATA STATUS
-----------------------------
1 B active
2 D hold
3 C active
4 H hold
5 j hold
6 k hold
7 l hold
8 y active
输出应该是
COUNT OF HOLD
-------------
2
当暂挂条目位于两个活动条目之间时,我们将其视为一批暂挂条目。
然后我们计算表中的整批暂挂条目。在上面的示例中,两个活动项之间有一个保持项,该项计为1。
然后,在另外两个活动项之间又有4个保持项,这被计为1。
所以有两个理由。1+1. 因此,输出为2。您可以使用函数查看下一行的状态。然后计算当前行处于活动状态而下一行处于保留状态时发生的次数。
从中减去1,就得到了输出
Oracle 11g R2架构设置:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
查询:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
您可以使用函数查看下一行的状态。然后计算当前行处于活动状态而下一行处于保留状态时发生的次数。
从中减去1,就得到了输出
Oracle 11g R2架构设置:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
查询:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
您可以使用函数查看下一行的状态。然后计算当前行处于活动状态而下一行处于保留状态时发生的次数。
从中减去1,就得到了输出
Oracle 11g R2架构设置:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
查询:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
您可以使用函数查看下一行的状态。然后计算当前行处于活动状态而下一行处于保留状态时发生的次数。
从中减去1,就得到了输出
Oracle 11g R2架构设置:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
查询:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
:
create table sam(
sno_ number,
data_ varchar2(5),
status_ varchar2(10)
);
insert into sam values(1,'a','hold');
insert into sam values(2,'b','active');
insert into sam values(3,'d','active');
insert into sam values(4,'s','hold');
insert into sam values(5,'c','active');
insert into sam values(6,'r','hold');
insert into sam values(7,'t','hold');
insert into sam values(8,'m','active');
insert into sam values(9,'y','hold');
select count(1) - 1 count_of_hold
from (
select status_, lead(status_,1,'hold') over (order by sno_) next_status_
from sam
)
where status_ = 'active' and next_status_ = 'hold';
| COUNT_OF_HOLD |
|---------------|
| 2 |
你试过什么吗?发布一些代码,你的问题是什么(在代码中)。
状态能否保持不变并处于活动状态?请将你的查询放在此处,说明你已经尝试过了。我什么也没尝试过,只是我认为我可以通过CRUSER使用它,或者不可以,我需要一些帮助。G one-是的,我们这里只有两件事保持不变并处于活动状态。你尝试过什么吗?发布一些代码,你的问题是什么(在代码中)。状态能否保持不变并处于活动状态?请将你的查询放在此处,说明你已经尝试过了。我什么也没尝试过,只是我认为我可以通过CRUSER使用它,或者不可以,我需要一些帮助。G one-是的,我们这里只有两件事保持不变并处于活动状态。你尝试过什么吗?发布一些代码,你的问题是什么(在代码中)。状态能否保持不变并处于活动状态?请将你的查询放在此处,说明你已经尝试过了。我什么也没尝试过,只是我认为我可以通过CRUSER使用它,或者不可以,我需要一些帮助。G one-是的,我们这里只有两件事保持不变并处于活动状态。你尝试过什么吗?发布一些代码,你的问题是什么(在代码中)。状态能否保持不变并处于活动状态?将你的查询放在这里,你已经尝试过了。我什么也没尝试过,只是我认为我可以通过CRUSER使用它,或者不可以,我需要一些关于这方面的帮助。G一-是的,我们这里只有两件事保持不变并处于活动状态。+1用于分析工具。如果最后一行以保持状态而不是活动状态结束,该怎么办?反之亦然(以Hold而非active开头)?您将忽略它们?是的,此查询将忽略这两种情况@user3345235,您所说的“sql也”是什么意思?这是sql。您使用的是哪种DBMS?Msg 195,级别15,状态10,第4行“lead”不是可识别的内置函数名。在调试查询时发生此错误,我会按照您的指示生成整个表。。但是他们不承认领导的作用。。im使用SQLServer2012您应该对问题进行适当的标记。但尽管如此,sql server 2012中仍有潜在客户。您必须使用早期版本。检查模拟销售线索功能。分析工具+1。如果最后一行以保持状态而不是活动状态结束,该怎么办?反之亦然(以Hold而非active开头)?您将忽略它们?是的,此查询将忽略这两种情况@user3345235,您所说的“sql也”是什么意思?这是sql。您使用的是哪种DBMS?Msg 195,级别15,状态10,第4行“lead”不是可识别的内置函数名。在调试查询时发生此错误,我会按照您的指示生成整个表。。但是他们不承认领导的作用。。im使用SQLServer2012您应该对问题进行适当的标记。但尽管如此,sql server 2012中仍有潜在客户。您必须使用早期版本。检查模拟销售线索功能。分析工具+1。如果最后一行以保持状态而不是活动状态结束,该怎么办?反之亦然(以Hold而非active开头)?您将忽略它们?是的,此查询将忽略这两种情况@user3345235,您所说的“sql也”是什么意思?这是sql。您使用的是哪种DBMS?Msg 195,级别15,状态10,第4行“lead”不是可识别的内置函数名。在调试查询时发生此错误,我会按照您的指示生成整个表。。但是他们不承认领导的作用。。im使用SQLServer2012您应该对问题进行适当的标记。但尽管如此,sql server 2012中仍有潜在客户。您必须使用早期版本。检查模拟销售线索功能。分析工具+1。如果最后一行以保持状态而不是活动状态结束,该怎么办?反之亦然(以Hold而非active开头)?您将忽略它们?是的,此查询将忽略这两种情况@user3345235,您所说的“sql也”是什么意思?这是sql。您使用的是哪种DBMS?Msg 195,级别15,状态10,第4行“lead”不是可识别的内置函数名。在调试查询时发生此错误,我会按照您的指示生成整个表。。但是他们不承认领导的作用。。im使用SQLServer2012您应该对问题进行适当的标记。但尽管如此,sql server 2012中仍有潜在客户。您必须使用早期版本。检查模拟导程功能。