【发布时间】:2014-09-19 03:51:33
【问题描述】:
我有以下 示例数据
ID Category Status Seq Start DT End DT
1 CAT 1 U 1 17-Feb-11 17-Feb-11
1 CAT 1 I 2 17-Feb-11 17-Feb-11
1 CAT 1 X 0 17-Feb-11 3-Mar-11
1 CAT 1 X 0 3-Mar-11 4-Mar-11
1 CAT 1 X 0 4-Mar-11 28-Jun-11
1 CAT 1 I 6 28-Jun-11 29-Jun-11
1 CAT 1 X 0 29-Jun-11 15-Jul-11
1 CAT 1 X 0 15-Jul-11 28-Jul-11
1 CAT 1 X 0 28-Jul-11 28-Jul-11
1 CAT 1 I 10 28-Jul-11 1-Aug-11
1 CAT 1 D 11 1-Aug-11 8-Aug-11
1 CAT 1 E 0 8-Aug-11 9-Aug-11
1 CAT 1 E 0 9-Aug-11 1-Sep-11
1 CAT 1 E 0 1-Sep-11 13-Sep-11
预期输出:-
ID Category Status Seq Start DT End DT
1 CAT 1 U 1 17-Feb-11 17-Feb-11
1 CAT 1 I 2 17-Feb-11 17-Feb-11
1 CAT 1 X 0 17-Feb-11 3-Mar-11
1 CAT 1 X 0 3-Mar-11 4-Mar-11
1 CAT 1 X 0 4-Mar-11 28-Jun-11
1 CAT 1 I 6 28-Jun-11 29-Jun-11
1 CAT 1 X ***0A*** 29-Jun-11 15-Jul-11
1 CAT 1 X ***0A*** 15-Jul-11 28-Jul-11
1 CAT 1 X ***0A*** 28-Jul-11 28-Jul-11
1 CAT 1 I 10 28-Jul-11 1-Aug-11
1 CAT 1 D 11 1-Aug-11 8-Aug-11
1 CAT 1 E 0 8-Aug-11 9-Aug-11
1 CAT 1 E 0 9-Aug-11 1-Sep-11
1 CAT 1 E 0 1-Sep-11 13-Sep-11
“seq”列是sql生成的列,基本上是rownum。对于状态列中的同一组值,“seq”值应保持不变,例如在这种情况下为 0。但是对于下一组相同的状态值,“seq”值应该与前一个不同,例如 0A。对于所有其他情况,seq 值将只是 rownum。 谢谢
【问题讨论】:
-
截图没有描述正在发生的事情,也没有描述应该发生的事情。
-
感谢您的回复。我使用 SQL (rownum) 生成 SEQ 列。当“status”具有相同的值时,“SEQ”将具有一些不同的值(除了 rownum),例如。在这种情况下为 0。但是,如果同一组值再次出现在“status”中,那么“seq”列应该有一些不同的值,例如 00。但在我的情况下,我得到的每组状态值都为 0。希望这是有道理的。
-
@Harry,请编辑您的问题并在此处添加相关信息。也最好提供一些示例数据和预期的输出,而不是附上图片。
-
您好,我更新了我的问题,还更新了样本和预期数据。不确定如何以正确的表格格式插入样本和预期数据。
-
你的行是如何排序的?如果没有正确的
ORDER BY子句,行是无序的,因此实际上不存在 "first 值集" 或 "second 这样的东西 一组值”。我怀疑这可能很复杂,你能想到一些 very minimal but executable example 吗?顺便说一句,当您回复 cmets 时,请尝试 ping 提问者(使用@pseudo。否则她甚至没有机会回到这里)。