【问题标题】:Delete duplicate rows based on time (minute or hour) DAX根据时间(分钟或小时)DAX 删除重复行
【发布时间】:2021-02-18 12:57:43
【问题描述】:

我有一个经过研究后无法解决的问题。

这是我的情况:

我想根据同一小时内的时间删除重复数据。例如,对于 ID“5267”,我想删除行 03/02/2021 08:22:00 并保留另外两个在不同日期和时间的行(5267 - 29/01/2021 07:50: 28 和 5267 - 03/02/2021 08:21:57)。

我不知道我的例子是否清楚。有问题可以问我。

感谢您以后的回答

美好的一天

【问题讨论】:

  • 如果同一小时有超过 2 行怎么办?您想保留我们每个小时的第一个/最后一个记录吗?需要先定义逻辑。

标签: sql powerbi dax


【解决方案1】:

我认为你需要:

delete from tbl 
where rowid not in (select min(rowid) 
                    from tbl 
                     group by id, cnt,to_char(dt,'dd/mm/yyyy hh24')
                   );

这里是db fiddle file

【讨论】:

  • 感谢您的宝贵时间,您能解释一下“rowid”的来源吗?它是 Oracle 的语法吗?如果是,Sql server 中的等价物是什么?如果你在 DAX 中有解释,我也会接受。谢谢
  • @Beelnutso 是的,我的代码适用于 Oracle。实际上在 MS SQL 中没有“rowid”,但您可以按如下方式创建它:select ROW_NUMBER() OVER(ORDER BY id ASC) AS Row#, dt, id, cnt from tbl; 对不起,我没有对 DAX 的解释 :(
猜你喜欢
  • 2022-10-14
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 2020-11-03
  • 2021-11-15
  • 1970-01-01
相关资源
最近更新 更多