Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 宏扩展期间出现异常:[错误]java.lang.IllegalStateException:无效的按聚合分组:_Mysql_Scala_Group By_Case_Quill.io - Fatal编程技术网

Mysql 宏扩展期间出现异常:[错误]java.lang.IllegalStateException:无效的按聚合分组:

Mysql 宏扩展期间出现异常:[错误]java.lang.IllegalStateException:无效的按聚合分组:,mysql,scala,group-by,case,quill.io,Mysql,Scala,Group By,Case,Quill.io,我在MYSQL中有一个这样的表 create table Employee( id tinyint, name char(36), is_permanent tinyint, company_name char(36), designation Char(36), primary key (id) )) 我想用Quill-SQL在这个表上写一个SELECT查询 select count(1), sum((case when (`designation` = 'software'

我在MYSQL中有一个这样的表

create table Employee(
 id tinyint,
 name char(36),
 is_permanent tinyint,
 company_name char(36),
 designation Char(36),
 primary key (id)
))

我想用Quill-SQL在这个表上写一个SELECT查询

 select count(1),  sum((case when (`designation` = 'software') then 1 else 0 end)) from employee group by company_name;
我写了一个模型

case class Employee(id: Int,
                    name: String,
                    is_permanent: Boolean,
                    company_name: String,
                    designation: Designation)

  trait Designation {
   val value: String
  }

  case object SoftwareEngineer extends Designation {
     override val value: String = "software"
  }

 case object MechanicalEngineer extends Designation {
   override val value: String = "mechanical"
  }
我使用quill的查询是

ctx.run {
  query[Employee].groupBy(_.company_name).map {
    case (compName, employeeTable) =>
      (employeeTable.size,
       employeeTable.filter(_.designation == lift(SoftwareEngineer)).size,
       compName)
  }
}
其中,
ctx
是羽毛笔上下文

但是,编译器显示了一个错误

exception during macro expansion: 
 [error] java.lang.IllegalStateException: Invalid group by aggregation: 'x48.filter(x49 => 
 x49.designation == ?).size'

group by子句中计算过滤计数的方法正确吗?如果否,还有其他方法吗?

查找group by子句的条件计数的方法不正确

 employeeTable.filter(_.designation == lift(SoftwareEngineer)).size,
但是

当然,为
名称定义了合适的编码器

 employeeTable.map { i =>
          if (i.`designation` == lift(SoftwareEngineer)) 1
          else 0
        }.sum