Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从结果集中删除半重复行_Sql_Sybase_Duplicate Removal - Fatal编程技术网

Sql 从结果集中删除半重复行

Sql 从结果集中删除半重复行,sql,sybase,duplicate-removal,Sql,Sybase,Duplicate Removal,我有一个日志表(table_B),它通过主表(table_a)中的触发器进行更新。每当插入/更新表_A上的任何字段时,触发器都会运行。我们需要拿出一份报告,只显示表_B-上更新的子集,即用户只对以下字段感兴趣: ID STAGE STATUS UPDATE_DATE 我需要从结果集中删除顺序重复项,即,假设表_B中存在以下条目: +----+-----+------+-----------+ |ID |STAGE|STATUS|UPDATE_DATE| +----+-----+------+

我有一个日志表(table_B),它通过主表(table_a)中的触发器进行更新。每当插入/更新表_A上的任何字段时,触发器都会运行。我们需要拿出一份报告,只显示表_B-上更新的子集,即用户只对以下字段感兴趣:

ID
STAGE
STATUS
UPDATE_DATE
我需要从结果集中删除顺序重复项,即,假设表_B中存在以下条目:

+----+-----+------+-----------+
|ID  |STAGE|STATUS|UPDATE_DATE|
+----+-----+------+-----------+
|4567|7    |9     |2012-12-25 |
+----+-----+------+-----------+
|4567|4    |2     |2012-12-24 |
+----+-----+------+-----------+
|4567|4    |3     |2012-12-23 |
+----+-----+------+-----------+
|4567|4    |2     |2012-12-22 |
+----+-----+------+-----------+
|4567|4    |2     |2012-12-21 |
+----+-----+------+-----------+
|4567|4    |3     |2012-12-20 |
+----+-----+------+-----------+
|4567|4    |2     |2012-12-19 |
+----+-----+------+-----------+
从底部,我需要提取第1、2、3、5、6、7行-仅省略第4行:我在第3和第4行有两个重复的条目(第4行由于表A中某个其他字段的更新而被触发到表B中,但其阶段/状态组合没有改变,因此可以忽略)

因此,当我发现结果集中的下一行是当前行的重复行(并且仅是下一行)时,我如何从结果集中删除它,或者忽略首先选择它。我将使用一个存储的进程来执行这个操作-这个过程会涉及到游标吗


Sybase 12.5,但语法非常接近SQL Server。

查看了StackOF上的类似问题:

http://stackoverflow.com/questions/19774273/remove-duplicates-in-sql-result-set-of-one-table
我认为这回答了这个问题:

select id, status, stage, min(updated_date)
from TABLE_B
where id = <someValue>
group by id, status, stage
选择id、状态、阶段、分钟(更新日期)
来自表B
其中id=
按id、状态、阶段分组

您的Sybase版本是否支持
lead()
/
lag()
函数?不确定Gordon-但我想我有基于另一个线程的答案。很快就会发布。