这个问题,纠结了我一个晚上。
我的场景是,一个酒店对应多个房间。
查询条件是,根据房间描述得到酒店。
这样,就会有重复的酒店出来。
找了一些资料,基本都是行不通。今早不死心,又搞了一下。结果被我找到答案了。
唉,完全是不熟悉hibernate的原因呀。。一般情况下,我们都是用HQL进行操作。
这样会有一个问题。子查询会提示找不到表或视图,或者是
17:09:07,563 ERROR PARSER:33 - line 1:41: unexpected token: (
17:09:07,581 ERROR PARSER:33 - line 1:58: unexpected token: count
17:09:07,608 WARN RequestProcessor:516 - Unhandled Exception thrown: class org.hibernate.hql.ast.QuerySyntaxException
2010-11-17 17:09:07 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception line 1:41: unexpected token: (
问题所在:createQuery 改为 createSQLQuery
本查询时用纯sql语句写成,不是用hql,所以改为createSQLQuery
写SQL时,注意表名不是类名。
小段代码:
重点是如何得到去重后的数据集。
select distinct hotel.id from DB_SELL_DIN_HOTEL hotel,Db_Sell_Din_Hotel_Room room where hotel.id=room.hotelId
分享到:
相关推荐
根据提供的文件信息,本文将详细解释如何通过 SQL 语句实现按照某一字段去重后获取所有字段的操作。在实际工作中,我们经常会遇到需要对数据表中的记录进行去重的情况,尤其是当某个字段作为唯一标识符时,我们希望...
这里的关键点在于使用了`GROUP BY`子句来按每个字段分组,并通过`COUNT(*)`函数统计每组的记录数。如果某个分组的记录数大于1,则意味着存在重复记录。 #### 删除重复记录 一旦确认了存在重复记录,下一步就是删除...
- `MOD()`函数用于计算两个数相除的余数,例如`MOD(id, 2)`可以判断ID是否为奇数。 - `COUNT()`函数用于统计表中特定列的行数,如在题目中用于确定学生总数。 - `RANK()`函数是窗口函数,它会根据指定的排序规则...
这些练习题覆盖了Oracle数据库中的基础到高级查询技术,包括基本的SELECT查询、条件筛选、函数应用、排序操作、分组统计、子查询等核心概念和技术。对于学习Oracle数据库管理的人来说,熟练掌握这些知识点是非常重要...
优化后的SQL语句能够显著提升系统的响应速度和整体性能,对于大型数据库而言,优化前后性能差异可达数百倍,直接影响到用户体验和系统的稳定性。 #### 二、SQL语句编写注意事项 ##### 2.1 ISNULL与ISNOTNULL 在...
在可能的情况下,使用并集(UNION ALL)代替并集(UNION),因为后者会自动去重,增加计算量。 总之,Oracle SQL性能调整是一门涉及广泛且深入的技术,需要数据库管理员和开发人员持续学习和实践。通过掌握SQL的...
### Oracle数据库基础知识精讲 #### 一、Oracle数据库概述 Oracle数据库是一款由Oracle公司开发的关系型数据库管理系统(RDBMS),被广泛应用于企业级应用环境中。Oracle数据库以其强大的功能、高度的安全性和可靠...
- 使用DISTINCT关键字或其他技术来获取去重后的记录。 **11. 删除重复的行** - 删除重复的记录是数据清洗的重要环节之一。 **12. 查询具有相同薪水的职工** - 通过JOIN或子查询等技术查询具有相同薪水的员工。 **...
12. **计算记录条数**:避免在大表上直接计算行数,可以使用 COUNT(*) OVER () 或分区统计。 13. **用 WHERE 子句替换 HAVING 子句**:在 WHERE 子句中过滤数据通常比在 HAVING 子句中更高效。 14. **通过内部函数...
默认情况下,ORACLE使用CHOOSE优化器,其选择依赖于表是否已通过`ANALYZE`命令更新了统计信息。基于成本的优化器(CBO)在准确的统计信息支持下能提供更优的查询计划,因此推荐定期运行`ANALYZE`以保持统计信息的...
### Oracle SQL优化精要 #### 一、Oracle SQL优化概览 在系统开发与维护过程中,随着数据库数据量的增长,SQL语句的性能优化成为提升系统响应速度的关键环节。优化SQL不仅能够显著提升数据处理效率,还能大幅节省...
### Oracle ERP(NEW)笔记概览与核心知识点 #### 一、Oracle EBS(Enterprise Business Suite)入门 Oracle EBS是Oracle公司推出的一款全面的企业管理软件解决方案,它整合了财务、供应链、制造、项目管理、客户服务...
- **COUNT**: 统计记录数。 - 示例:`SELECT COUNT(*) FROM emp;` 计算员工总数。 - **SUM**: 计算总和。 - 示例:`SELECT SUM(sal) FROM emp;` 计算员工工资总额。 - **MAX**: 查找最大值。 - 示例:`SELECT MAX...
下面的语句将 student 表中的记录数统计出来。 select count(*) from student; 十二、数据去重复 数据去重复是指从结果集中删除重复的记录。下面的语句将重复的记录从 student 表中删除。 delete from student ...
通过这些题目,我们可以深入理解Oracle数据库中的SQL查询技术,包括子查询、聚合函数、分组、窗口函数、集合操作、去重以及复杂的条件过滤等概念。这些都是在实际数据库管理中经常遇到的问题,熟练掌握这些技巧能够...
### Oracle SQL性能优化知识点 #### 一、选用适合的Oracle优化器 - **优化器种类**:Oracle提供了三种优化器模式: - **基于规则的优化器(RULE)**:适用于较旧的应用程序或特定场景。 - **基于成本的优化器(COST...
- **计数**:`COUNT(*)`统计所有行,`COUNT(column_name)`统计非空行。 - **求和**:`SUM(column_name)`计算所有行的总和。 - **平均值**:`AVG(column_name)`计算所有行的平均值。 - **最大值**:`MAX(column_name)...
通过查询v$system_event和v$session_event等视图,可以了解系统级和会话级的等待事件统计信息。 - **db_file_sequential_read**:表示按顺序读取单个数据块的事件,通常与使用rowid访问表有关。 - **db_file_...
- SYSDATE能得到的信息:解释SYSDATE函数返回的当前系统日期和时间。 - 确定一年是否为闰年:使用数据库提供的函数或逻辑判断是否为闰年。 - 周的计算:根据日期计算某年某月某日是星期几。 - 确定一年内属于周...
* 分组,如:每个同学的平均:按学号分组(Oracle、SQL Server 中消灭在 SELECT 子句后的非分组函数,必须消灭在 GROUP BY 子句后消灭),MySQL 中可以不用 * 条件筛选,如:大于 60 分 FROM 子句 * FROM 子句用于...