JDBC的聚合函数

JDBC的聚合函数,jdbc,Jdbc,我想找到大约72列的最小值、最大值和平均值,类似于代码片段中给出的亮度。我应该如何遍历所有列并返回它们的平均值、最小值和最大值?我必须使用while循环。但我不知道该如何具体实施 stmt=conn.createStatement() 在查询中使用Union将所有72列值作为72个不同的值获取 select 'APAPTATION LUMINANCE' myField,avg(Adaptation_Luminance), min(Adaptation_Luminance) from ras UN

我想找到大约72列的最小值、最大值和平均值,类似于代码片段中给出的亮度。我应该如何遍历所有列并返回它们的平均值、最小值和最大值?我必须使用while循环。但我不知道该如何具体实施

stmt=conn.createStatement()


在查询中使用Union将所有72列值作为72个不同的值获取

select 'APAPTATION LUMINANCE' myField,avg(Adaptation_Luminance), min(Adaptation_Luminance) from ras
UNION
select 'TYPE1' myField,avg(TYPE1), min(TYPE1) from ras
UNION
select 'TYPE2' myField,avg(TYPE2), min(TYPE2) from ras
.....
UNION
select 'TYPE72' myField,avg(TYPE72), min(TYPE72) from ras
在java jdbc使用中

String sql = " SELECT 'ADAPTATION LUMINANCE' ........... , min (TYPE72) FROM RAS ";
// Note: Do not include semicolon at end of query string. In JDBC, it will cause error.

boolean isMoreRecordsAvailable = false;
ResultSet rs =  stmt.executeQuery(sql);
        isMoreRecordsAvailable = rs.next();

while (isMoreRecordsAvailable )
{
      System.out.println("Average of "+rs.getString(1)+"  is " + rs.getFloat(2) + " and its Minimum value is : "+rs.getFloat(3));

      isMoreRecordsAvailable = rs.next();
}
您将获得如下输出:

Average of APAPTATION LUMINANCE is 19.11 and its Minimum value is : 9.9
Average of TYPE1 is 11.11 and its Minimum value is 11
Average of TYPE2 is 22.22 and its Minimum value is 2
....
....
Average of TYPE72 is 72.72 and its Minimum value is 7.2

打印ASM代码以生成给定的类。用法:asmiger[-debug]当我按照您的指示为74列准备好查询时,会显示此错误。我在mysql workbench中检查了查询是否有效,但仍然无法在jdbcjava.sql.SQLException中检查:您的sql语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行中使用“自适应亮度、平均亮度(自适应亮度)、最大亮度(自适应亮度)”的正确语法,它应该是
选择“自适应亮度”**myField**、平均亮度(自适应亮度)、最小亮度(自适应亮度)
Average of APAPTATION LUMINANCE is 19.11 and its Minimum value is : 9.9
Average of TYPE1 is 11.11 and its Minimum value is 11
Average of TYPE2 is 22.22 and its Minimum value is 2
....
....
Average of TYPE72 is 72.72 and its Minimum value is 7.2