【发布时间】:2015-08-29 03:41:35
【问题描述】:
在此示例中,我们有一个表格,其中包含指向每个订阅者的人口统计问题 (questionID) 的链接,日期表明订阅者何时回答了特定人口统计问题。在某些情况下,订阅者可能在以后再次回答了同一个问题,而我们现在有多个记录用于相同的订阅者和 questionID,但回答日期不同(请参阅示例数据):
subscriberID questionID dateAnswered isDeleted
------------ ----------- ----------------------- ---------
100 559 2015-07-29 13:07:26.153 0
100 560 2015-07-29 13:07:26.153 0
100 561 2015-07-29 13:07:26.153 0
100 562 2015-07-29 13:07:26.153 0
100 575 2015-07-29 13:07:26.153 0
102 559 2015-07-30 15:12:46.143 0
102 564 2015-07-30 15:12:46.143 0
102 588 2015-07-30 15:12:46.143 0
102 559 2015-07-31 16:11:53.323 0
114 575 2015-08-21 11:27:14.253 0
114 588 2015-08-21 11:27:14.253 0
114 560 2015-08-21 11:27:14.253 0
114 588 2015-08-24 05:44:42.030 0
114 562 2015-08-21 11:27:14.253 0
114 575 2015-08-24 05:44:42.030 0
存储答案的应用本应将旧记录标记为“已删除”(设置 isDeleted = 1),但它没有这样做,我现在需要清理旧记录。
这似乎应该很简单,但它让我难住了。我如何 (a) 选择任何有重复的订阅者 ID 和问题 ID 但回答日期不同的记录?以及 (b) 我如何进行更新以将每个订阅者的除最新记录之外的所有记录设置为 isDeleted=1?
任何帮助将不胜感激!我怀疑自我加入可能是为了,但我还没有弄清楚。因此问题!
【问题讨论】:
标签: sql-server tsql duplicate-data