我的HQL查询给出了以下错误: java.sql.SQLSyntaxErrorException:表达式不是聚合列或GROUP BY列:CIUDAD2_.ID_PAIS
我的查询是:
return getSessionFactory().getCurrentSession().createQuery("select s.ciudadSede.paisCiudad.idPais AS idPais,"
+ "s.ciudadSede.paisCiudad.nombrePais AS nombrePais,"
+ "s.ciudadSede.idCiudad AS idCiudad,"
+ "s.ciudadSede.nombreCiudad AS nombreCiudad,"
+ "case when s.ciudadSede.valorCiudad = null then s.ciudadSede.paisCiudad.valorPais else s.ciudadSede.valorCiudad end AS valor,"
+ "s.tipoJjoo.descripcionTipo AS descripcionTipoJjoo,"
+ "s.ciudadSede.valorCiudad AS numeroVecesSede "
+ "from Sede s join s.ciudadSede AS c "
+ "group by c.idCiudad").setResultTransformer(Transformers.aliasToBean(SedeDto.class)).list();
}
我想要的是将按城市分组的“Sedes”分组
答案 0 :(得分:0)
如果您要 GROUP BY foo
,则表示查询将为表达式的每个不同值返回一行 foo
SQL要求 SELECT
列表中的每个表达式都是 GROUP BY
子句中包含的表达式或聚合函数(例如COUNT()
,SUM()
,MIN()
,MAX()
,AVG()
)。 (该规则有一些例外,例如文字和确定性函数的结果。)
该错误表示查询的SELECT
列表中的表达式不在GROUP BY
子句中,或者不是聚合表达式。
我不确定您是否提出问题,或者您是否只是就当前的努力提供状态报告......
您确定要 GROUP BY
而不是 ORDER BY
?