我有一个具有挑战性的问题。我想从1个表中选择一些记录,并从另外两个表中查找所有相关记录。匹配时,我想将这些记录插入到一个新的表ORDER BY ID和Time中。插入时,我想为所有具有相同ID的记录分配唯一ID以表示组ID。如何分配唯一的组ID?
这个我可以用CTE做。这是抓住。
每个表格都是特定的记录类型。例如,第一个表是Entries,第二个表是视图等等。
这些是日志表到我无法控制的应用程序,我想通过相同的ID查看条目的电子路径。但是,如果同一个ID有多个条目,我想分割组ID。
如何在SQL Server 2008 R2中执行此操作?
检查出SQL Fiddle我做了一个ID给你一个特定的电子路径的一个很好的例子。在这个例子中,我将要被分配一个唯一的组ID和第一项记录后,分区像这样:
GroupID ID TIME TYPE
1001 3445 January, 01 2014 03:00:00+0000 View
1001 3445 January, 01 2014 04:00:00+0000 View
1001 3445 January, 01 2014 05:00:00+0000 View
1001 3445 January, 01 2014 06:00:00+0000 Click
1001 3445 January, 01 2014 07:00:00+0000 Entry
1002 3445 January, 01 2014 08:00:00+0000 View
1002 3445 January, 01 2014 09:00:00+0000 View
1002 3445 January, 01 2014 10:00:00+0000 View
1002 3445 January, 01 2014 11:00:00+0000 Click
1002 3445 January, 01 2014 12:00:00+0000 Entry
感谢所有帮助您可以提供。我仍然在学习,这对我来说真的很棘手,但也许我只是忽略了那些正在盯着我的东西!
注意
我认为,为了使这项工作。我将不得不找到具有相同ID的每个条目记录。然后对于每条记录,在Datetime之前查找第一个Entry记录。找到时,用该日期时间更新该记录,以便每条记录都知道它是日期时间和最后一个条目日期时间。这应该可以更轻松地选择两个日期之间的点击和视图,并相应地更新每个细分。
更好的是,我可以通过每次点击和查看并找到大于当前日期时间的条目。然后从该列表中选择MIN(时间),并将该日期时间添加到每个单击和查看记录。这样,每次点击和查看都具有相同的日期时间,包括条目,我可以有相似性来分配组ID!
'GroupID' 1001和1002之间有什么区别?所有行似乎具有相同的ID和相同的日期... – Fabio
Fabio:不同之处在于,1001是导致第一个条目记录的所有记录,然后1002是第一个条目记录之后的所有其他记录,并且导致第二个条目记录。如果有5个其他条目记录与点击和视图之间的每一个,那么该ID将上升到1003,1004等。 – Fastidious