hsqldb - 使用 HSQL 和 WHERE 语句时的问题
问题描述
在 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, 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 ProjectName]
我不知道如何使这项工作,请帮助。
解决方案
我检查了 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
推荐阅读
- performance - Intel Xeon 6248 上的 MKL FFT 性能 - 突变
- php - 如何避免 Laravel 范围内的重复?
- reactjs - 在 useCallback 中更新状态 - React JS
- visual-studio-code - 如何将 vscode Rust tabsize 设置为 4?
- pytest - 使用 asyncio 加速测试
- python - Y标签的放置plotly python水平条形图
- delphi - 一个虚假的 Delphi 错误 E2200,即使在全新的空包项目中也不断显示
- c# - 如何在 MongoDB 中索引 .NET DateTimeOffset 字段?
- javascript - 从 JavaScript 中的字符串中获取特定项目
- google-analytics-api - 个人用户使用 UA 维度和指标的活动