【问题标题】:Issues when using HSQL and WHERE statement使用 HSQL 和 WHERE 语句时的问题
【发布时间】:2021-01-25 10:55:43
【问题描述】:

在 HSQL 中使用 WHERE 语句时遇到问题。当我输入如下代码时,我没有收到任何错误:

"SELECT Year, ProjectName, (cast(sum(Missed) as float)/(select cast(sum(d.Missed) as float) from Draft d)) as MissedPer from Draft group by ProjectName, Year order by ProjectName"

但是,当我在嵌套查询中添加 WHERE 语句时,出现错误:

"SELECT Year, ProjectName, (cast(sum(Missed) as float)/(select cast(sum(d.Missed) as float) from Draft d where Year = '19.12')) as MissedPer from Draft group by ProjectName, Year order by ProjectName"

错误如下:

线程“main”中的异常 java.sql.SQLSyntaxErrorException:表达式不在聚合或 GROUP BY 列中:语句 [SELECT BranchNo, CAST(( SUM(PUBLIC.DRAFT.MISSED)) AS DOUBLE)/(()) ProjectName, (cast(sum(Missed) as float)/(select cast(sum(d.Missed) as float) from Draft d where d.BranchNo = '19.12')) as MissedPer from Draft group by ProjectName, BranchNo order by项目名称]

我不知道该怎么做,请帮忙。

【问题讨论】:

    标签: hsqldb


    【解决方案1】:

    我检查了 HSQLDB 2.5.1 版本,查询返回结果:

    create table draft (year varchar(10), projectname varchar (10), missed int);
    insert into draft values '19.10', 'p alpha', 10
    insert into draft values '19.11', 'p alpha', 12
    insert into draft values '19.12', 'p alpha', 3
    
    
    YEAR  PROJECTNAME MISSEDPER          
    ----- ----------- ------------------ 
    19.10 p alpha     3.3333333333333335 
    19.11 p alpha     4.0                
    19.12 p alpha     1.0    
    
            
    

    【讨论】:

      猜你喜欢
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多