Database Type
postgresql
Database Version
PostgreSQL 15.3
Druid Version
1.2.23
JDK Version
Open JDK 21
Error SQL
SELECT
'day' AS stat_period,
TO_CHAR(dis_date, 'YYYY-MM-DD') AS stat_date,
CASE
WHEN GROUPING(dis_dept_code) = 1 THEN 'all'
ELSE dis_dept_code
END AS dept_code,
COUNT() FILTER (WHERE if_surg_flag = 0) AS surg_dis_cnt,
COUNT() FILTER (WHERE if_surg_flag = 0 and nrs_grd in('01','04')) AS surg_dis_hl_nurs_cnt
FROM dwd_inp_fact_discharge_reg
WHERE dis_date >= to_date('${start_time}', 'YYYY-MM-DD')
and dis_date <= to_date('${end_time}', 'YYYY-MM-DD')
AND dis_dept_code IS NOT NULL
GROUP BY rollup(dis_dept_code), dis_date
ORDER BY stat_date, dept_code;
Testcase Code
List stmts = SQLUtils.parseStatements(sql, dbType);
Stacktrace Info
No response
Error Info
com.alibaba.druid.sql.parser.ParserException: not supported.pos 562, line 8, column 34, token ,
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:654)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:600)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:621)
将group by子句下的rollup(...)放最后可解决
Database Type
postgresql
Database Version
PostgreSQL 15.3
Druid Version
1.2.23
JDK Version
Open JDK 21
Error SQL
SELECT
'day' AS stat_period,
TO_CHAR(dis_date, 'YYYY-MM-DD') AS stat_date,
CASE
WHEN GROUPING(dis_dept_code) = 1 THEN 'all'
ELSE dis_dept_code
END AS dept_code,
COUNT() FILTER (WHERE if_surg_flag = 0) AS surg_dis_cnt,
COUNT() FILTER (WHERE if_surg_flag = 0 and nrs_grd in('01','04')) AS surg_dis_hl_nurs_cnt
FROM dwd_inp_fact_discharge_reg
WHERE dis_date >= to_date('${start_time}', 'YYYY-MM-DD')
and dis_date <= to_date('${end_time}', 'YYYY-MM-DD')
AND dis_dept_code IS NOT NULL
GROUP BY rollup(dis_dept_code), dis_date
ORDER BY stat_date, dept_code;
Testcase Code
List stmts = SQLUtils.parseStatements(sql, dbType);
Stacktrace Info
No response
Error Info
com.alibaba.druid.sql.parser.ParserException: not supported.pos 562, line 8, column 34, token ,
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:654)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:600)
at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:621)
将group by子句下的rollup(...)放最后可解决