【发布时间】:2018-05-17 03:35:47
【问题描述】:
假设我有一个包含以下列的表格:
Id, ConnectionId, File, FileCreated
int, int, varchar, DateTime
数据示例
进一步,假设它充满了未排序的数据,如下所示:
1, 3, "a.dat", 2018-05-16 13:53:40.008
2, 1, "b.dat", 2018-05-16 13:53:40.007
3, 3, "c.dat", 2018-05-16 13:53:40.009
4, 3, "z.dat", 2018-05-16 13:53:40.002
5, 3, "h.dat", 2018-05-16 13:53:40.003
6, 2, "ba.dat", 2018-05-16 13:53:40.004
7, 3, "zy.dat", 2018-05-16 13:53:40.005
8, 1, "f.dat", 2018-05-16 13:53:40.001
9, 1, "cd.dat", 2018-05-16 13:53:40.006
我如何查询这些数据以便数据集返回我:
- 每个连接一行
- 按时间升序排列
预期结果
我正在寻找的结果如下:
(注意:我将这些分组,以便您可以看到它们是根据 ConnectionId 首先返回的(例如 group by 也许)。
8, 1, "f.dat", 2018-05-16 13:53:40.001
4, 3, "z.dat", 2018-05-16 13:53:40.002
6, 2, "ba.dat", 2018-05-16 13:53:40.004
5, 3, "h.dat", 2018-05-16 13:53:40.003
9, 1, "cd.dat", 2018-05-16 13:53:40.006
7, 3, "zy.dat", 2018-05-16 13:53:40.005
2, 1, "b.dat", 2018-05-16 13:53:40.007
1, 3, "a.dat", 2018-05-16 13:53:40.008
3, 3, "c.dat", 2018-05-16 13:53:40.009
希望我的示例向您展示了这些不是严格基于时间的,也不是严格基于 connectionId 的。两者都是。
【问题讨论】:
-
我被你的措辞吓到了。每个连接只需要一行吗? connectionID 是否唯一标识了一个连接? (如果没有,请务必更改该名称)。如果是这样,这与预期结果不符。
-
是的,ConnectionId 确实唯一标识了连接。这是表的外键,在实际解决方案中该表还有更多内容,但试图保持简单。我希望最终结果看起来就像我的结果示例中返回的所有行。意思是很多行,但按 connectionid 分组——但我的语言仍然不能很好地解释。 :|
标签: sql sql-server tsql