【发布时间】:2013-02-11 03:04:15
【问题描述】:
我想运行一个查询,根据 colA 和 colB 的值消除重复行。 但是,我仍然想返回 colC 和 colD 的值。
这是我目前所拥有的一个简单示例:
SELECT DISTINCT colA, colB ?colC, colD?
FROM TABLE1
或
SELECT colA, colB ?colC, colD?
FROM TABLE1
GROUP BY colA, colB
这两种方法都不允许我返回 colC 和 colD,除非我将它们检查为不同的值或 colA 和 colB 之类的组。我不想这样做,只有 colA 和 colB 需要区分,而不是 colC 和 colD。我只想退货。
关于如何实现这一点的任何想法?
【问题讨论】:
-
假设
table1中有多行具有一组特定的colA和colB值,您希望返回哪一组colC和colD值?最小值?最大值? “first”或“last”值(在这种情况下,您需要告诉我们如何对数据进行排序以使“first”和“last”有意义)? -
你能发布一些示例数据和想要的结果吗?
-
@JustinCave 你能详细说明我将如何使用“first”和“last”吗?我相信我总是想要第一个值。在我的示例中会怎样?
-
@Baxter - “第一个”和“最后一个”依赖于某种方式来对数据进行排序。如果
table1中有两行具有相同的colA和colB值,您怎么知道哪一行是“第一”行?是否有一些额外的列(例如时间戳,或单调递增的table1_id)?
标签: sql oracle select group-by distinct