SQL查询中的公式

时间:2015-01-30 03:00:23

标签: sql

我正在尝试识别数据库中的重复数据。

如果某人的第一个座位是1,而他们的最后一个座位是3,那就意味着他们应该有x3 num_seats

所以我想运行一个查询,其中first_seat - last_seat +1 = num_seats。关于我的查询有什么问题的任何指针?

select acct_id, event_id, event_name, section_name, row_name, first_seat, last_seat, num_seat
from dba.v_event
where first_seat - last_seat +1 != num_seat

1 个答案:

答案 0 :(得分:7)

你的等式是向后的。它应该是last_seat - first_seat + 1

在您的示例中,first_seat = 1last_seat = 3

first_seat - last_seat + 1 = 1 - 3 + 1 = -1
last_seat - first-seat + 1 = 3 - 1 + 1 = 3

如果您想允许座位按任意顺序列出,您可以使用ABS()获取差异的绝对值:

ABS(last_seat - first_seat) + 1