我有一个这样的表格(加上另外10列),其中包含超过100万条经常更新的记录:
id pid start_date end_date
1 761 2011-07-25 00:00:00 2011-08-01 00:00:00
2 761 2011-08-01 00:00:00 2011-08-22 00:00:00
3 761 2011-08-22 00:00:00 2011-09-19 00:00:00
4 802 2011-08-22 00:00:00 2011-09-19 00:00:00
5 761 2011-06-05 00:00:00 2011-07-05 00:00:00
并希望获得特定pid的结果(下例中为761),并且所有连续的时间间隔合并:
id pid start_date end_date
1 761 2011-07-25 00:00:00 2011-09-19 00:00:00
5 761 2011-06-05 00:00:00 2011-07-05 00:00:00
目前我在代码中执行此操作,但希望将此功能完全移至db端。 任何想法如何做到这一点?
编辑:start_date和end_date列属于DATETIME类型。
答案 0 :(得分:0)
这在代码中做得更好。循环遍历行,当它是同一产品时,更新结束日期,否则创建一个新的数组条目。
有关SQL在SQL中有多复杂的想法,请参阅m y attempt at solving this in SQL Server:)