我正在尝试识别数据库中的重复数据。
如果某人的第一个座位是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
答案 0 :(得分:7)
你的等式是向后的。它应该是last_seat - first_seat + 1
。
在您的示例中,first_seat = 1
和last_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