我在SQL Server中遇到了一个我认为非常简单的查询(我正在使用2018)
我有一个表(AUDIT_table),我对其具有只读访问权限,如下所示:
ID | DimensionA | DimensionB | DimensionC | Amount | UserID | Timestamp |
---|---|---|---|---|---|---|
1 | ABC | DEF | GHI | 100 | Mark | 2022/01/01 12:00:00 |
2 | ABC | DEF | GHI | 10 | James | 2022/01/01 06:00:00 |
3 | ABC | DEF | GHI | 250 | Mark | 2022/01/01 02:00:00 |
4 | JKL | MNO | PQR | 250 | Bob | 2022/01/01 13:00:00 |
5 | JKL | MNO | PQR | 100 | Dave | 2022/01/01 12:00:00 |
我试图找到的是审计表中最近的条目,需要通过组合多个列来确定分组.例如,(维度A+维度B+维度C)相同的所有行都被视为同一记录,我们希望找到该记录的最新条目.在上表中,ID 1、2和;3相同(ABC+DEF+GHI),ID 4&;5个相同(JKL+MNO+PQR).
因此,使用上面的示例表,我试图编写一个select语句来返回此结果:
Dimension A | Dimension B | Dimension C | Amount | UserID | Timestamp |
---|---|---|---|---|---|
ABC | DEF | GHI | 100 | Mark | 2022/01/01 12:00:00 |
JKL | MNO | PQR | 250 | Bob | 2022/01/01 13:00:00 |
我try 了这个查询(在许多其他组合中),但无法得到我想要的结果:
SELECT DimensionA, DimensionB, DimensionC, Amount,
UserID, Max(Timestamp), (DimensionA + DimensionB + DimensionC) AS POV
FROM AUDIT_TABLE
GROUP BY POV
任何帮助都将不胜感激.