今天遇到一个SQL跑不通的问题:

去掉cast as

去掉round

最初以为是Inceptor不兼容ORACLE语句Cast as 导致的,做的以下测试

发现都能跑通,说明Cast as语句在Inceptor中能正常使用。

然后仔细检查Sql语句

最初语句报错信息如下:

只执行前半部分,去掉left join能正常运行,验证了Cast as没错

加上left join后又报错:

最后发现,131行少写一个英文逗号,加上后问题解决。

原始SQL

with `__all_dim__` as (
select
*
from (
select
from_unixtime(
unix_timestamp(`__bts__`) -1,
'yyyy-MM-dd HH:mm:ss'
) as `__bts__`
from (
select
concat_ws(' ', `d`.`date`, `t`.`time_of_day`) as `__bts__`
from `ecmp`.`dim_date` as `d`
left join `ecmp`.`dim_time_of_day` as `t` on 1 = 1
where
`d`.`date` >= '2019-12-24'
and `d`.`date` <= '2019-12-25'
) as `__bts___tp1`
where
`__bts__` > '2019-12-24 00:00:00'
and `__bts__` <= '2019-12-25 00:00:00'
and second(`__bts__`) = 0
and minute(`__bts__`) = 0
and hour(`__bts__`) = 0
and pmod(day(`__bts__`), 1) = 0
) as `__time_model__`
cross join (
select
`dd_60139`.`ci_pk` as `ci_pk`,
`dd_60139`.`ci_id` as `ci_id`,
`dd_60139`.`ci_code` as `ci_code`,
`dd_60139`.`ci_name` as `ci_name`,
`dd_60139`.`bs_pk` as `bs_pk`,
`dd_60139`.`aps_pk` as `aps_pk`,
`dd_60139`.`tenant_pk` as `tenant_pk`,
`dd_60139`.`ts_pk` as `ts_pk`,
`dd_60139`.`oc_pk` as `oc_pk`,
`dd_60139`.`bs_id` as `bs_id`,
`dd_60139`.`aps_id` as `aps_id`,
`dd_60139`.`tenant_id` as `tenant_id`,
`dd_60139`.`oc_id` as `oc_id`,
`dd_60139`.`ts_id` as `ts_id`,
`dd_60139`.`tenant_name` as `tenant_name`,
`dd_60139`.`oc_name` as `oc_name`,
`dd_60139`.`aps_dname` as `aps_dname`,
`dd_60139`.`bs_name` as `bs_name`,
`dd_60139`.`ts_name` as `ts_name`
from `ecmp`.`dim_ci` as `dd_60139`
) as `ci_pk`
cross join (
select
'运维A角' as incident_acceptor_role
from system.dual
union all
select
'运维B角' as incident_acceptor_role
from system.dual
union all
select
'运维1.5线' as incident_acceptor_role
from system.dual
union all
select
'其他' as incident_acceptor_role
from system.dual
) as `incident_acceptor_role`
)
,`t` as (
select
`ci_pk`,
`accept_incident_count`,
`aps_pk`,
`incident_acceptor_role`,
rank() over(
partition by `aps_pk`,
`incident_acceptor_role`
order by
`accept_incident_count` DESC
) as `accept_incident_count_rank`,
rank() over(
partition by `aps_pk`,
`incident_acceptor_role`
order by
`accept_incident_count` ASC
) as `__inverse_rank__`
from (
select
`aps_pk`,
`incident_acceptor_role`,
`ci_pk`,
accept_incident_count as accept_incident_count
from `ecmp`.dws_ci_b00001t01_nd01_003
where
accept_incident_count is not null
and `__bts__` >= '2019-12-24 00:00:00'
AND `__bts__` <= '2019-12-24 23:59:59'
) as `t0`
)
--insert into `ecmp`.`dws_ci_b00001t04_nd01_018`(`__bts__`,`__cts__`,`accept_incident_count`,`accept_incident_count_rank`,`accept_incident_count_win_rate`,`aps_dname`,`aps_id`,`aps_pk`,`bs_id`,`bs_name`,`bs_pk`,`ci_code`,`ci_id`,`ci_name`,`ci_pk`,`incident_acceptor_role`,`oc_id`,`oc_name`,`oc_pk`,`tenant_id`,`tenant_name`,`tenant_pk`,`ts_id`,`ts_name`,`ts_pk`) select
`__all_dim__`.`ci_pk` as `ci_pk`,
`__all_dim__`.`incident_acceptor_role` as `incident_acceptor_role`,
CAST(round(nvl(`accept_incident_count`, 0), 0) as INT) as `accept_incident_count`,
CAST(round(`accept_incident_count_rank`, 0) as INT) as `accept_incident_count_rank`,
CAST(round(`accept_incident_count_win_rate`, 1) as DOUBLE) as `accept_incident_count_win_rate`,
`__all_dim__`.`ci_id` as `ci_id`,
`__all_dim__`.`ci_code` as `ci_code`,
`__all_dim__`.`ci_name` as `ci_name`,
`__all_dim__`.`bs_pk` as `bs_pk`,
`__all_dim__`.`aps_pk` as `aps_pk`,
`__all_dim__`.`tenant_pk` as `tenant_pk`,
`__all_dim__`.`ts_pk` as `ts_pk`,
`__all_dim__`.`oc_pk` as `oc_pk`,
`__all_dim__`.`bs_id` as `bs_id`,
`__all_dim__`.`aps_id` as `aps_id`,
`__all_dim__`.`tenant_id` as `tenant_id`,
`__all_dim__`.`oc_id` as `oc_id`,
`__all_dim__`.`ts_id` as `ts_id`,
`__all_dim__`.`tenant_name` as `tenant_name`,
`__all_dim__`.`oc_name` as `oc_name`,
`__all_dim__`.`aps_dname` as `aps_dname`,
`__all_dim__`.`bs_name` as `bs_name`,
`__all_dim__`.`ts_name` as `ts_name`,
CAST(SYSDATE as STRING) as `__cts__`,
`__all_dim__`.`__bts__` as `__bts__`
from `__all_dim__`
left join (
select
'2019-12-24 23:59:59' as `__bts__`,
`accept_incident_count`,
`accept_incident_count_rank`,
`accept_incident_count_win_rate`,//这一行
CAST(coalesce(`tp1`.`aps_pk`) as STRING) as `aps_pk`,
CAST(coalesce(`tp1`.`ci_pk`) as STRING) as `ci_pk`,
CAST(coalesce(`tp1`.`incident_acceptor_role`) as STRING) as `incident_acceptor_role`
from (
select
`t`.`ci_pk`,
`t`.`aps_pk`,
`t`.`incident_acceptor_role`,
`t`.`accept_incident_count`,
`t`.`accept_incident_count_rank`,
if(`c`.ct = 1,null,(`__inverse_rank__` -1) /(`c`.ct -1) * 100) as `accept_incident_count_win_rate`
from `t`
left join (
select
`aps_pk`,
`incident_acceptor_role`,
count(*) as `ct`
from `t`
group by
`aps_pk`,
`incident_acceptor_role`
) as `c`
on 1 = 1
and `t`.`aps_pk` = `c`.`aps_pk`
and `t`.`incident_acceptor_role` = `c`.`incident_acceptor_role`
) as `tp1`
) as `__dws__`
on `__all_dim__`.`__bts__` = `__dws__`.`__bts__`
and `__all_dim__`.`ci_pk` = `__dws__`.`ci_pk`
and `__all_dim__`.`incident_acceptor_role` = `__dws__`.`incident_acceptor_role`

Inceptor Parse error [Error 1110] line 102,24 SQL问题的更多相关文章

  1. Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "</url-pattern>" 终止

    1.错误描述 严重: Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "< ...

  2. mysql报错:Cause: java.sql.SQLException: sql injection violation, syntax error: ERROR. pos 39, line 2, column 24, token CLOSE

    因为close是mysql关键字 -- ::, DEBUG (BaseJdbcLogger.java:)- ==> Preparing: , -- ::, INFO (XmlBeanDefini ...

  3. Laravel Predis Error while reading line from the server.

    问题 Laravel说明文档中的 Redis 发布与订阅案例,命令行运行php artisan redis:subscribe 到60s自动断开并报错 [Predis\Connection\Conne ...

  4. Faster RCNN 运行自己的数据,刚开始正常,后来就报错: Index exceeds matrix dimensions. Error in ori_demo (line 114) boxes_cell{i} = [boxes(:, (1+(i-1)*4):(i*4)), scores(:, i)];

    function script_faster_rcnn_demo() close all; clc; clear mex; clear is_valid_handle; % to clear init ...

  5. make module失败的原因cc1: error: unrecognized command line option “-m64

    cc1: error: unrecognized command line option "-m64"cc1: error: unrecognized command line o ...

  6. laravel redis Error while reading line from the server.

    代码运行一段时间后,会报下面的错误. [Predis\Connection\ConnectionException] Error while reading line from the server. ...

  7. linux下安装QT5:error: unrecognized command line option ‘-fuse-ld=gold’

    安装qt时在执行./configure时报错:error: unrecognized command line option '-fuse-ld=gold' 这个错误是qt的一个bug. 在装有gol ...

  8. 编辑sass报错:error style.scss (Line 3: Invalid GBK character "\xE5")解决办法

    cmd.exe /D /C call C:/Ruby23-x64/bin/scss.bat --no-cache --update header.scss:header.css error heade ...

  9. qt opencv编译错误 /usr/local/lib/libopencv_imgcodecs.so.3.1:-1: error: error adding symbols: DSO missing from command line

    转载自:http://tbfungeek.github.io/2016/03/05/Opencv-%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87 ...

随机推荐

  1. 初识vue-简单的自定义标签页面

    vue3.0比vue2.0简化了许多. 在这里呢就做了一个简单的标签页面.在这当中难免会有些错误,请勿见怪. 1.vue的页面编写,也就是app.vue这个文件作为主入口文件,当然这个主入口文件也可以 ...

  2. 免费、开源的基于tp5的快速开发框架

    HisiPHP 系统官网:https://www.hisiphp.com/ 后台体验:http://v2.demo.hisiphp.com/admin.php/system/publics/index ...

  3. 每日CSS_滚动页面动画效果

    每日CSS_滚动页面动画效果 2021_1_13 源码链接 1. 代码解析 1.1 html 代码片段 <section> <h2>开 始 滑 动</h2> < ...

  4. 【MySQL 高级】知识拓展

    MySQL高级 知识拓展 MySQL高级 知识拓展 数据量 和 B+树 的关系 事务隔离级别集底层原理MVCC 唯一索引和普通索引的关键不同点 MRR:multi range read 练习和总结

  5. MySQL常用的数据类型和字段属性

    数据类型 数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节 常用 bigint 较大的数 ...

  6. 【Oracle】修改列的大小

    alter table 表名 modify column_name varchar2(32)  alter table 表名 modify (column_name1 varchar(20) defa ...

  7. web测试误区:浏览器后退键退出系统会话失效

    通过最近测试的项目,认识到实际:浏览器后退键退出系统,会话仍旧有效.打破了之前认为浏览器后退键就会退出系统登录的认知. 一,了解Cookie和Session的作用,具体来说cookie机制采用的是在客 ...

  8. 1.8V升3V芯片,1.8V升3.3V升压芯片方案

    两节干电池由于耗电量电压会降低,无法长期稳定的输出3V或者3.3V供电,直接两节干电池会供电电压不稳,影响后面电路稳定.两节干电池的供电电压在1.8V-3.2V左右 1.8V升3V升压芯片方案, 如P ...

  9. Java异常处理场景中不同位置的返回值详细解析

    Java 异常处理中的返回值在不同位置不同场景下是有一些差别的,这里需要格外注意 具体分以下两种场景: 1 finally语句块没有return语句,即当代码执行到try或者catch语句块中的ret ...

  10. 【UltraISO】中文破解版

    下载链接:https://cn.ultraiso.net/uiso9_cn.exe简体中文版专用:   注册名:Guanjiu    注册码:A06C-83A7-701D-6CFC多国语言版专用:   ...