oracle 如何得到去重后的统计数

本文讨论了使用Hibernate查询酒店数据时遇到的问题,即根据房间描述获取酒店时出现重复酒店的情况。通过将HQL查询更改为纯SQL查询,并注意表名而非类名,成功解决了重复数据问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题,纠结了我一个晚上。
我的场景是,一个酒店对应多个房间。
查询条件是,根据房间描述得到酒店。
这样,就会有重复的酒店出来。

找了一些资料,基本都是行不通。今早不死心,又搞了一下。结果被我找到答案了。
唉,完全是不熟悉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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzj0470

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值