• SQL高级用法


    查看一个分区中所有可能的分区选项

    table_a这个table有三个partition,一个是p_product,一个是p_model,一个是p_date,但是我只希望看p_model这一个partition里面可能的选项,应该如何写SQL查看?

    文心一言说可以下面这样,但是在我这里用不了

    1. SELECT DISTINCT p.part_val
    2. FROM mydatabase.PARTITIONS p
    3. JOIN mydatabase.TBLS t ON p.tbl_id = t.tbl_id
    4. JOIN mydatabase.SDS s ON t.sd_id = s.sd_id
    5. WHERE t.tbl_name = 'a1'
    6. AND s.cols[p.part_col].name = 'p_model'
    7. 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将它们的结果合并。

  • 相关阅读:
    【CKS】考试之 sysdig
    卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用
    百度地图API使用指南 - Javascript API | JavaScript API GL | JavaScript API Lite
    基于nodejs+vue学籍管理系统
    Python编程学习笔记
    Rust编写Windows服务
    Redis集群服务器
    史上最全!Windows常见的几种权限维持
    Vue3 - 生命周期钩子函数(组合式 API)
    搭建springWeb保姆级教程
  • 原文地址:https://blog.csdn.net/Albert233333/article/details/136387023