我正在尝试将同一Id中的连续相同的行缩减为单行。我尝试了复制,但随后它将同一个Id中的所有非连续相同的出现替换为单个行。此外,消息的顺序很重要。输入和所需输出如下所示。有没有办法达到这个理想的结果?
由于
输入数据
Id Result Message
----------------------
1 0 a
1 0 p
1 0 p
1 0 p
1 0 d
1 0 p
1 0 p
1 0 f
1 0 p
2 1 a
2 1 a
2 1 a
2 1 f
2 1 h
2 1 b
2 1 b
3 0 d
3 0 d
3 0 d
3 0 c
3 0 c
期望的输出
Id Result Message
----------------------
1 0 a
1 0 p
1 0 d
1 0 p
1 0 f
1 0 p
2 1 a
2 1 f
2 1 h
2 1 b
3 0 d
3 0 c
答案 0 :(得分:1)
考虑@ GordonLinoff的注释,如果你要包含一个指定行所需顺序的列,例如,
Id Result Message Order
1 0 a 1
1 0 p 2
1 0 p 2
1 0 p 2
1 0 d 3
1 0 p 4
1 0 p 4
1 0 f 5
1 0 p 6
2 1 a 7
2 1 a 7
2 1 a 7
2 1 f 8
2 1 h 9
2 1 b 10
2 1 b 10
3 0 d 11
3 0 d 11
3 0 d 11
3 0 c 12
3 0 c 12
然后,您可以使用以下查询轻松获得所需的结果:
SELECT distinct Id, Result, Message, Order
FROM Table_A
OUPUT:
Id Result Message Order
1 0 a 1
1 0 p 2
1 0 d 3
1 0 p 4
1 0 f 5
1 0 p 6
2 1 a 7
2 1 f 8
2 1 h 9
2 1 b 10
3 0 d 11
3 0 c 12
答案 1 :(得分:0)
我猜你在寻找Group by?
SELECT col1,col2,col3 FROM Table GROUP BY col1,col2,col3;
结果的顺序将是您传递的列的顺序。