我有一个问题给我带来了问题,我无法理解为什么MySQL的查询优化器的行为方式如此.这是背景信息:
我有3张桌子.两个相对较小,一个较大.
表1(非常小,727行):
CREATE TABLE
ipa(
ipa_idint(11)NOT NULL AUTO_INCREMENT,
ipa_codeint(11)DEFAULT NULL,
ipa_namevarchar(100)DEFAULT NULL,
payorcodevarchar(2)DEFAULT NULL,
compidint(11)
DEFAULT'2'PRIMARY KEY(ipa_id),
KEYipa_code(ipa_code))ENGINE = MyISAM数据
表2(小,59455行):
CREATE TABLE
assign_ipa(
assignidint(11)NOT NULL AUTO_INCREMENT,
ipa_idint(11)NOT NULL,
useridint(11)NOT NULL,
usernamevarchar(20)DEFAULT NULL,
compidint(11)DEFAULT NULL,
PayorCodechar(10)DEFAULT NULL
PRIMARY KEY(assignid),
UNIQUE KEYassignid(assignid,ipa_id),
KEYipa_id(ipa_id)
)ENGINE = MyISAM
表3(大,24,711,730行):
CREATE TABLE …
I am trying to transform groups of columns based on certain conditions. I am having trouble looping over groups of columns in my select statement. Simplified example (actual df has many more columns in avars and bvars):
df = pl.DataFrame(
{'a': [0,1,2,4],
'b': [1,0,3,5],
'w': [4,7,5,8],
'x': [10, 20, 25, 30],
'y': [15,3,16,88],
'z': [22,17,4,32]
}
)
avars=['w','x']
bvars=['y','z']
Run Code Online (Sandbox Code Playgroud)
This works:
df.select(
(pl.when(pl.col('a')>0)
.then(pl.col(var)/pl.col('a'))
.otherwise(pl.col(var)) for var in avars),
)
Run Code Online (Sandbox Code Playgroud)
But I get an error message when I try
df.select( …Run Code Online (Sandbox Code Playgroud)