首先,在使用MySQL的同一个查询中,不能使用别名进行算术(数学)。那
is mentioned here
也。
但是你可以用
yii\db\Expression
类,因为这样,框架就不会尝试将表达式作为mysql列进行转义。
所以基本上你必须选择不带别名的表达式
Expression
班级。
例如:
$data = (new \yii\db\Query())
->select([
'date',
'SUM( IF(status = "Passed", 1, 0) ) AS passed',
'SUM( IF(status = "Failed", 1, 0) ) AS failed',
'SUM( IF(status = "On Hold", 1, 0) ) AS onhold',
new \yii\db\Expression('SUM( IF(status = "Passed", 1, 0) ) / SUM( IF(status = "On Hold", 1, 0) ) AS selfsubmit'),
'COUNT(*) AS total'
])
->from('qa3d')
->groupBy('date')
->all();