我想從一個表其列c是比列的最大值更大Ç表B中刪除表無法正常工作
的刪除行我試過
delete * from A
where A.p >= (select max(t.c) from B t)
,但它無法正常工作。我怎樣才能做到這一點?
我想從一個表其列c是比列的最大值更大Ç表B中刪除表無法正常工作
的刪除行我試過
delete * from A
where A.p >= (select max(t.c) from B t)
,但它無法正常工作。我怎樣才能做到這一點?
的INSERT ... VALUES,UPDATE和DELETE語句需要蜂房的site.xml配置文件中的下列屬性值:
hive.enforce.bucketing true
hive.exec.dynamic.partition.mode nonstrict
在相應的蜂房site.xml的更新配置後,重新啓動服務 - HiveServer2和Hive Metastore。
然後,用這個的HQL
delete from A
where A.p >= (select max(t.c) from B t)
有幾個問題在這裏:
DELETE語法不應包含星號(「*」)。請參閱官方Hive Delete syntax。
同樣如MysticForce正確指出的那樣,where子句中的子查詢只支持IN,NOT IN,EXISTS,NOT EXISTS語句。請參閱Subqueries syntax in manual。
子查詢是否可以在Hive中的where子句中工作而不具有關聯性? – MysticForce
@MysticForce - 使用的子查詢不是「相關的子查詢」。根據定義,相關子查詢是使用來自外部查詢的值的子查詢(嵌套在另一個查詢中的查詢)。在此示例中,子查詢不使用外部查詢中的任何值。它所做的就是獨立計算MAX值。 – janeshs
where子句中的子查詢只支持IN,NOT IN,exists,not exists語句。請參考https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries – MysticForce
你在說什麼版本的蜂巢? – MysticForce
從Hive版本0.14.0開始:INSERT ... VALUES,UPDATE和DELETE現在可用於完整的ACID支持。 –