查看一个分区中所有可能的分区选项
table_a这个table有三个partition,一个是p_product,一个是p_model,一个是p_date,但是我只希望看p_model这一个partition里面可能的选项,应该如何写SQL查看?
文心一言说可以下面这样,但是在我这里用不了
SELECT DISTINCT p.part_val
FROM mydatabase.PARTITIONS p
JOIN mydatabase.TBLS t ON p.tbl_id = t.tbl_id
JOIN mydatabase.SDS s ON t.sd_id = s.sd_id
WHERE t.tbl_name = 'a1'
AND s.cols[p.part_col].name = 'p_model'
AND p.part_col IS NOT NULL;
可以下面这样代替
SHOW PARTITIONS tableA
这样会把三个分区的所有目前有组合的可能性都展示出来
然后把Excel格式的结果下载下来
然后查找替换即可
把首尾用区分字符 前后加 *替代,匹配到然后替换为空,
然后去重
我下面这段SQL运行的时候遇到了下面这个报错,报错信息为“Error while compiling statement: FAILED: SemanticException [Error 10019]: line 48:42 OR not supported in JOIN currently '22'”。SQL代码为:
SELECT distinct g.uid as rysecret,g.citycode,g.p_operate,g.suffix
from (select rysecret,ip from etl_swap.rp_biz_access_log where dt>='{click_m1}' and p_biz='loan' ) a LEFT JOIN model_dig.e_age_unique AS age_table ON a.rysecret = age_table.uid AND ( ((YEAR(CURRENT_DATE())-age_table.year)>50) OR ((YEAR(CURRENT_DATE())-age_table.year)<22) )
请问这段SQL代码哪里错了?
这个报错信息指出在Hive SQL中不支持在JOIN操作中使用OR条件。在Hive中,当使用JOIN操作时,ON子句中的条件不支持使用OR运算符。你需要将OR条件拆分成两个单独的JOIN操作,然后使用UNION ALL将它们的结果合并。