T-SQL确定“乱序”记录

Rise_against

我正在使用Microsoft SQL Server,我需要从表中确定“不按顺序”的记录。

我将通过一个示例进行说明。我具有以下表结构:

OrderNumber OrderStatus EventDateTime
0001522989  22          2014-04-14 05:49:25.4414243
0001522989  26          2014-04-14 05:51:16.7047485
0001522989  23          2014-04-14 05:51:17.8602798
0001522990  23          2014-04-14 05:51:19.9603575
0001522990  24          2014-04-14 05:52:06.5803494
0001522990  24          2014-04-14 05:52:06.5803494

现在,我需要生成“无序发送”的OrderNumbers列表。因此,在此示例中,列表将仅包含一个值:“ 0001522989”。

订单0001522990以正确的顺序发送(首先是状态23,然后是状态24,然后又是状态24(这不算作“乱序”))。

订单0001522989的发送顺序不正确(首先是状态22,然后是状态26,然后是状态23)。

关于如何实现此目标的任何想法吗?

提前致谢。

编辑我添加了订单的可能性,以连续两次发送相同的状态(这不应该算作“乱序”)

最好的祝福

MatBailie

从SQL Server 2008开始...

SELECT
  OrderNumber
FROM
(
  SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY OrderNumber ORDER BY OrderStatus, EventDateTime  )   AS sequenceCorrect,
    ROW_NUMBER() OVER (PARTITION BY OrderNumber ORDER BY              EventDateTime)   AS sequenceActual
  FROM
    yourTable
)
  AS yourTableSequenced
WHERE
  sequenceCorrect <> sequenceActual
GROUP BY
  OrderNumber
ORDER BY
  OrderNumber


编辑:糟糕,我忘记了该WHERE条款,现在应该可以工作;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

T-SQL:找出之前发生过的乱序值

来自分类Dev

需要确定我运行的 T-SQL 查询是否正在修改任何记录而无需访问日志

来自分类Dev

T-SQL组/组合记录

来自分类Dev

T- SQL重复记录

来自分类Dev

T-SQL 设置变量 IF 记录存在

来自分类Dev

查找丢失和乱序的记录

来自分类Dev

将参数传递给确定的变量T-SQL

来自分类Dev

为什么T-SQL中的LAG函数是不确定的?

来自分类Dev

确定T-SQL select语句是否返回任何行

来自分类Dev

SQL Select Distinct确定要保留的记录

来自分类Dev

T-SQL查找记录并允许为空

来自分类Dev

通过T-SQL检索受影响的记录

来自分类Dev

T-SQL UPDATE语句比select语句影响更多的记录

来自分类Dev

T-SQL [UNION ALL]从查询结果中删除记录

来自分类Dev

根据T-SQL中的日期范围运行记录总数

来自分类Dev

通过T-SQL检索受影响的记录

来自分类Dev

T-SQL联接NULL和NOT NULL记录

来自分类Dev

如何选择时间戳之间状态的记录?T-SQL

来自分类Dev

T-SQL - 通过 Row_Number() 更新记录子集

来自分类Dev

根据T-SQL中多个相关记录的排序顺序对记录进行排名?

来自分类Dev

T-SQL将多个记录连接成一个记录

来自分类Dev

在.NET / T-SQL中有效地选择真实记录或虚拟/默认“记录”

来自分类Dev

T-SQL将多个记录连接成一个记录

来自分类Dev

T-SQL回滚是确定性的还是垃圾回收的?

来自分类Dev

T-SQL-根据销售情况确定两个日期之间的特定天数

来自分类Dev

T-SQL函数,用于确定两个整数范围是否重叠

来自分类Dev

T-SQL回滚是确定性的还是垃圾回收的?

来自分类Dev

T-SQL函数,用于确定两个整数范围是否重叠

来自分类Dev

sql-确定第一组记录

Related 相关文章

热门标签

归档