SQL-SAP HANA-仅使用列表中的第一个条目(基于日期/时间)

时间:2018-11-26 14:25:58

标签: sql duplicates hana

我在SAP HANA上有一些表和“创建列表”来组合多个“原始表”。 在一个表中,有重复的行,更具体地说,每个信息(列)都相同,但日期/时间却不同,因此源系统有这种奇怪的习惯来创建一个条目多次(这是错误的) 。我没有可能在源系统中处理数据。 该表如下所示:

  • 表名称:Testsubject_status
  • 列:状态...信息。时间戳
  • 测试我...... bla ....... 05.01.2017 05:05:00
  • 测试我...... bla ...... 01.01.2017 11:15:00
  • 测试他........... blub ..... 01.01.2017 11:17:00
  • 测试她…………..blab ..... 01.01.2017 11:25:00
  • 测试我…………..bla ....... 01.01.2017 11:35:00
  • 测试它...............蓝色...... 01.01.2017 12:15:00
  • 测试我………..bla ....... 07.01.2017 12:15:00

在新创建的表格中,不应考虑第一个条目(日期/时间)之后的所有重复项。

  • 表名称:Testsubject_status_NEW
  • 列:状态...信息。时间戳
  • 测试我...... bla ...... 01.01.2017 11:15:00
  • 测试他........... blub ..... 01.01.2017 11:17:00
  • 测试她…………..blab ..... 01.01.2017 11:25:00
  • 测试它...............蓝色...... 01.01.2017 12:15:00

不仅在“测试我”中,这个问题确实多次出现。

解决方案是这样的: 选择

  • xxx AS“ tri”
  • yyy AS“ tre”
  • zzz AS“ tru”
  • Testsubject_status.Status Count> 1时的情况,然后“采用第一项”
  • 来自...
  • 哪里……

???

我很高兴能提供任何帮助或建议。

1 个答案:

答案 0 :(得分:1)

根据说明,汇总最长日期应该足够了:

SELECT tri, tre, tru,
           max(timestamp) 
FROM
    ....

如果“重复数据删除”确实应基于除timestamp以外的其余所有列进行,则此方法有效。