【发布时间】:2017-12-22 03:21:44
【问题描述】:
我正在尝试查看客户请求重新激活其 Internet 帐户的频率。
问题是,我们捕获了一组有限的数据进行分组。所以我的数据集如下。
我正在尝试从第一次创建重新激活请求到第一次完成进行计数,一旦完成,请完成请求完成所需的天数并计算 NON 的数量在此期间发生的 COMPLETIONS 和 SENT 状态。
下面是示例数据的图像以及表的 sql。希望有人可以提供一点帮助。 (使用 SQL Server 2005 兼容性)
CREATE TABLE #temp
(
Identifier varchar(20)NOT NULL
,CreatedDate DATETIME NOT NULL
,CompletedDate DATETIME NOT NULL
,SN_Type varchar(20) NOT NULL
,SN_Status varchar(20) NOT NULL
)
;
INSERT INTO #temp
VALUES('64074558792','20160729','20160805','Re-Activattion','SENT');
INSERT INTO #temp
VALUES('64074558792','20160810','20160810','Re-Activattion','N-CO');
INSERT INTO #temp
VALUES('64074558792','20160812','20160812','Re-Activattion','N-CO');
INSERT INTO #temp
VALUES('64074558792','20160811','20160811','Re-Activattion','COMP');
INSERT INTO #temp
VALUES('64074558792','20160811','20160813','Re-Activattion','N-CO');
INSERT INTO #temp
VALUES ('61030203647','20160427','20160427','Re-Activattion', 'COMP');
INSERT INTO #temp
VALUES('61030203647','20160425','20160425','Re-Activattion', 'N-CO');
INSERT INTO #temp
VALUES('61030203647','20160422','20160422','Re-Activattion', 'N-CO');
INSERT INTO #temp
VALUES('61030203647','20170210','20170210','Re-Activattion', 'COMP');
INSERT INTO #temp
VALUES('61030203688','20170409','20170210','Re-Activattion', 'SENT');
INSERT INTO #temp
VALUES('61030203699','20170409','20170210','De-Activattion', 'COMP');
【问题讨论】:
-
很好地提供了我们可以使用的 DDL 和示例数据!为了让您以后更快地使用,您可以用逗号分隔插入内容,而不是每次都输入
INSERT INTO #temp。INSERT INTO #temp VALUES (...,...,...,...,...),(...,...,...,...,...). -
您从哪里获得 610302023647 的最短创建日期?我在创建日期中根本看不到那个日期,更不用说那个 ID。
-
如何对数据进行排序以获得 HAVE 结果?
-
@scsimon 值的逗号语法是否适用于 SQL 2005 中的 INSERT?我认为那只是 SQL 2008+。但是,您可以在 2005 年使用 INSERT...SELECT...UNION ALL 语法。
-
@Danielle 澄清一下,你的问题是 2005 兼容,但你有 2005 和 2008 的标签。是 2005 年吗?如果是这样,你能改变你的标签吗?
标签: sql sql-server-2005