Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
Java 在JUNIT中执行GROUPBY DB查询_Java_Mysql_Unit Testing_Junit_Hsqldb - Fatal编程技术网

Java 在JUNIT中执行GROUPBY DB查询

Java 在JUNIT中执行GROUPBY DB查询,java,mysql,unit-testing,junit,hsqldb,Java,Mysql,Unit Testing,Junit,Hsqldb,我有一个类似于下面的数据库查询,当我在mySql中执行此查询时,它工作正常,但在Junit中失败,错误为“表达式不在聚合或按列分组:”。我的JUnit使用内存中的HSQL DB。我已经阅读了,并且理解当在查询中使用聚合方法时,我们需要为所有字段指定group by 但是我有一个要求,我需要根据只包含一列(不是主键)的分组来获取所有值,请您建议我如何在JUnit中实现这一点 我正在执行的查询: 从TestTable中选择*,计数(sampleField),其中sampleField2!=null

我有一个类似于下面的数据库查询,当我在mySql中执行此查询时,它工作正常,但在Junit中失败,错误为“表达式不在聚合或按列分组:”。我的JUnit使用内存中的HSQL DB。我已经阅读了,并且理解当在查询中使用聚合方法时,我们需要为所有字段指定group by

但是我有一个要求,我需要根据只包含一列(不是主键)的分组来获取所有值,请您建议我如何在JUnit中实现这一点

我正在执行的查询:
从TestTable中选择*,计数(sampleField),其中sampleField2!=null group by SAMPLEFILD

您可以对其他列使用min(列名称)或max(列名称)

例如,如果有名为
firstname
lastname

Select min(firstname), min(lastname), count(sampleField) from TestTable where sampleField2 is not null group by sampleField

已编辑:使用
不是空的
而不是
!=空
以获得正确的结果。

请小心。。。您如何连接到数据库?因为通过JNDI的凭据将无法通过JUnit访问。。。测试将需要自己的硬编码凭证。从experienceWith group by发言您只能在选择列表中使用分组列和聚合。我不知道这在MySQL中是如何工作的,除了一个只有一列的表。这没有什么奇怪的,它只是无效的SQL。似乎您已经尝试使用一些伪SQL来推断您的问题。请发布在MySQL中工作的完整查询,以及您试图在HQL中执行的完整查询。