问题描述
我现在在使用查询的 IBM Db2 时遇到问题。我有下面的代码:
test_score_distribution = %sql SELECT test_score as "Test score",count(*) as "Frequency" from INTERNATIONAL_STUDENT_TEST_scoreS GROUP BY test_score;
test_score_distribution
但是在执行的时候,我遇到了这个错误:
(ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError: sqlNumResultCols 失败:[IBM][CLI 驱动程序][DB2/LINUXX8664] sql0104N 在“SELECT test_score”之后发现了意外标记“as”。 预期的标记可能包括:“AND”。 sqlSTATE=42601\r sqlCODE=-104 [sql: SELECT test_score 作为测试分数,count(*) 作为频率来自 INTERNATIONAL_STUDENT_TEST_scoreS GROUP BY test_score;](背景 此错误位于:http://sqlalche.me/e/f405)
我该如何解决?
解决方法
test_score_distribution = %sql SELECT test_score,count(*) as "Frequency"
from INTERNATIONAL_STUDENT_TEST_SCORES
GROUP BY test_score;
test_score_distribution
这为我解决了
,我遇到了同样的问题,请尝试以下步骤:
test_score_distribution = %sql SELECT test_score,count(*) "Frequency" from INTERNATIONAL_STUDENT_TEST_SCORES GROUP BY test_score;
test_score_distribution
然后可以使用此命令更改名称:
dataframe = test_score_distribution.DataFrame()
column_names = dataframe.columns.values
column_names[0] = "Test Score"
dataframe.columns = column_names
column_names[1] = "Frequency"
dataframe.columns = column_names
dataframe
根据我使用 SQL 魔术命令的经验,您需要删除每个查询上的空格。
您可以随时使用 .DataFrame() 函数保存表格并更自由地工作