【发布时间】:2013-06-26 12:51:24
【问题描述】:
我在 sql 表中有 5 列,我需要所有 5 列作为输出,但对三列进行不同的操作
需要返回对三列进行不同操作的所有列
如何做到这一点?
Timestamp Name State Context
2013-06-24 11:51:03.2550000 tst1 Started E1
2013-06-24 11:56:03.2550000 tst1 Completed E1
2013-06-24 11:51:03.2550000 tst1 Started E1
2013-06-24 11:56:03.2550000 tst1 Completed E1
2013-06-24 11:45:03.2550000 tst1 Started E1
2013-06-24 11:50:03.2550000 tst1 Completed E1
2013-06-24 11:45:03.2550000 tst1 Started E1
2013-06-24 11:50:03.2550000 tst1 Completed E1
在这里,我通过使用以下查询在三列上应用 distinct 来获得上表的所有不同结果。但是我需要这三列的不同也需要选择上下文列而不在上下文列上应用 distict
SELECT DISTINCT Timestamp,Name,State FROM TableName group by 时间戳、名称、状态
重新表述我的问题:
我需要从上表中选择唯一列。这里只有 unquie 列选择被认为是 Timestamp,Name,State
Timestamp Name State Context
2013-06-24 11:51:03.2550000 tst1 Started E1
2013-06-24 11:56:03.2550000 tst1 Completed E1
2013-06-24 11:45:03.2550000 tst1 Started E1
2013-06-24 11:50:03.2550000 tst1 Completed E1
【问题讨论】:
-
另外两列呢?您想对它们进行什么样的聚合/修改?请添加您尝试实现的结果的示例
-
用例子更新了问题
-
你能显示你想要的输出吗?
-
该数据中有两个唯一的 Started。 Context 的单个值的示例无法解决问题。
-
因为在 6 次编辑中您仍然没有明确的问题。您声明 5 列,样本为 4 列。在示例中,第 4 个值只有一个,因此不清楚如何处理。对于该示例,您可以在所有 4 列上选择不同的。你试过我的答案了吗?
标签: sql sql-server select distinct