【发布时间】:2012-10-03 03:02:49
【问题描述】:
我有一个存储产品最大和最小价格中断的数据库表。
有没有人知道 SQL,如果我从一个 Max 到下一个项目的 Min 有一个休息时间。例如。 1-10 12-20 如果它可以通过每个范围检测到绝对最小值和绝对最大值的中断,我希望它返回丢失的数字或至少一个计数或布尔值。
SQL Server (MSSQL) 2008
【问题讨论】:
-
到目前为止你有什么尝试过的,请分享一下?
-
哪个 RDBMS?它们都有不同的功能、语法、优化等。您的价值观是包容性和/或排他性的吗? (例如,您的示例中是否存在 10 和 11 之间的差距?或者是否存在重叠,因为 2 行的值是 20?) 您是否已经知道 没有重叠,或者我们也应该考虑这种可能性?
-
MSSQL 2008 我不想考虑重叠,因为这将归结为用户错误,但如果有人可以提供帮助,那会很好,但主要是在最大和最小序列中找到一个差距
-
MSSQL 2012 支持 LEAD/LAG 分析函数(窗口函数)。请参阅下面的评论。如果这在 2008 年不可用,则可以使用联接。