小编cra*_*igm的帖子

为什么MySQL无法优化此查询?

我有一个问题给我带来了问题,我无法理解为什么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),
KEY ipa_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 KEY assignid(assignid,ipa_id),
KEY ipa_id(ipa_id)
)ENGINE = MyISAM

表3(大,24,711,730行):

CREATE TABLE …

mysql

9
推荐指数
1
解决办法
349
查看次数

transforming multiple columns using loop

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)

python-polars

1
推荐指数
1
解决办法
99
查看次数

标签 统计

mysql ×1

python-polars ×1