【发布时间】:2020-02-29 17:59:32
【问题描述】:
谁能帮我得到一个结果查询。我已经被困在这里几个小时了。抱歉,我刚接触 SQL。我需要从 Column1 和 Column2 中获取不重复值的最新日期(column3)
SELECT COLUMN1, COLUMN2, COLUMN3
FROM TABLE1 t1
LEFT JOIN
TABLE2 t2
ON t1.column1 = t2.column1
表值:
COLUMN1 COLUMN2 COLUMN3
VAL1 1234 2019-05-12
VAL1 1234 2019-04-12
VAL1 1234 2019-12-12
VAL2 4321 2019-11-12
VAL2 3333 2019-12-12
VAL3 2222 2019-10-10
预期结果:
COLUMN1 COLUMN2 COLUMN3
VAL1 1234 2019-12-12
VAL2 3333 2019-12-12
VAL3 2222 2019-10-10
【问题讨论】:
-
不适用于
'Val2'@HoneyBadger ;因为您需要在COLUMN2上进行分组,从而产生2 行,或者将MAX应用于Val2,这将返回4321而不是3333。这需要通用的ROW_NUMBER解决方案。 -
您好,我使用了 MAX() 和 DISTINCT 以及 GROUP BY,但我无法获得我期望的输出。有什么想法吗?
-
@ArvinJohnSalandanan 有 3 个重复项。所有这些都向您展示了如何使用 CTE/子查询和
ROW_NUMBER来实现这一目标。 -
所以我真的需要使用临时表来实现这一点吗?
-
感谢@Larnu 提供资源。非常感谢。
标签: sql-server tsql duplicates sql-delete