pandasql中CAST语法报错排查:OperationalError语法错误咨询
pandasql中CAST语法报错的解决方案
错误原因分析
- 语法括号错误:原SQL语句中
AS male_female_ratio后面多了一个多余的右括号,这是触发OperationalError: near ")" : syntax error的直接原因。 - 数据类型定义不合理:
DECIMAL(1,5)的总位数(1)小于小数位数(5),无法存储整数部分,后续计算会出现异常,需调整精度。
修正后的SQL语句
SELECT CAST((male_year_df.total_male_suicides / female_year_df.total_female_suicides) AS DECIMAL(6,5)) AS male_female_ratio, male_year_df.year
补充说明
pandasql基于SQLite语法,SQLite中DECIMAL类型会映射为NUMERIC,调整后的DECIMAL(6,5)表示总位数为6,其中5位小数、1位整数,可适配大多数男女自杀率比值的计算场景。
内容的提问来源于stack exchange,提问作者Bijan Khair Rahman
相关产品推荐
相关产品推荐

