【问题标题】:how to delete the data from the Delta Table?如何从 Delta 表中删除数据?
【发布时间】:2021-11-30 10:57:28
【问题描述】:

我实际上是想从 Delta 表中删除数据。

当我运行以下查询时,我得到了大约 500 或 1000 条记录的数据。

SELECT * FROM table1 inv 
join (SELECT col1, col2, col2, min(Date) minDate, max(Date) maxDate FROM table2 a GROUP BY col1, col2, col3) aux
on aux.col1 = inv.col1 and aux.col2 = inv.col2 and aux.col3 = inv.col3 
WHERE Date between aux.minDate and aux.maxDate

但是当我尝试使用以下查询删除那 500 条记录时,我遇到了语法错误。

DELETE FROM table1 inv 
join (SELECT col1, col2, col2, min(Date) minDate, max(Date) maxDate FROM table2 a GROUP BY col1, col2, col3) aux
on aux.col1 = inv.col1 and aux.col2 = inv.col2 and aux.col3 = inv.col3 
WHERE Date between aux.minDate and aux.maxDate

请有人在这里帮助我。

提前致谢:)。

【问题讨论】:

  • 请同时分享错误和示例数据,以便我们提供准确的答案

标签: databricks azure-databricks delta


【解决方案1】:

这里是sql reference

DELETE FROM table_identifier [AS alias] [WHERE predicate]

你不能在这里使用JOIN,所以根据你的需要扩展你的where子句。
以下是一些示例:

DELETE FROM table1
  WHERE EXISTS (SELECT ... FROM table2 ...)

DELETE FROM table1
  WHERE table1.col1 IN (SELECT ... FROM table2 WHERE ...)

DELETE FROM table1
  WHERE table1.col1 NOT IN (SELECT ... FROM table2 WHERE ...)

【讨论】:

  • 非常感谢 Gatear :) 它有效。可惜我错过了。
  • 我很高兴它有帮助。请不要忘记标记已接受的答案。谢谢!
猜你喜欢
  • 2019-06-24
  • 1970-01-01
  • 2022-12-13
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多