`
wangcheng
  • 浏览: 1466645 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

Hibernate中使用COUNT DISTINCT

    博客分类:
  • java
阅读更多

在Hibernate中, 计算某列非重复记录的总数, 使用COUNT + DISTINCT

在MySQL中,可以使用

sql 代码
  1. select COUNT(DISTINCT(name)) from products  

但在Hibernate中却不能用如下格式

  1. select COUNT(DISTINCT(name)) from ProductDTO  

需要把里面的括号去掉, 改成

  1. select COUNT(DISTINCT name ) from ProductDTO  

在MySQL中也可以使用这种样式.

分享到:
评论

相关推荐

    hibernate 中HQL语句查询学习笔记

    当查询结果中可能存在重复项时,可以使用`DISTINCT`关键字去除重复项: ```hql SELECT DISTINCT s.sdept FROM Student s; ``` 这将返回所有不同的系别名称。 ##### 删除对象 HQL同样支持删除操作,但需要注意的...

    hibernate criteria 分组 排序 关联

    criteria.setProjection(Projections.countDistinct("age")); // 计算年龄字段不为空且不重复的记录数量 List<Long> countDistinctAge = criteria.list(); ``` - **最大值(Max)**: ```java Criteria ...

    hibernate查询集合.pdf

    若想去除重复数据,可以使用`distinct`关键字,如`select distinct s.age from Student s`,这将返回不重复的年龄值。 此外,HQL还支持更复杂的查询,如`where`子句用于添加条件,`join`用于处理关联关系,`group ...

    课程hibernate查询集合.pdf

    使用`distinct`关键字可以去除重复数据,例如`select distinct s.age from Student as s`将返回不重复的年龄列表。 HQL的强大之处在于其面向对象的特性,能够轻松处理关联、继承和多态。它简化了数据库查询,使得...

    Hql语句注意事项总结

    2. **在`count()`中使用别名问题** - **别名的正确使用**:在Hql中,当使用`count()`函数时,可以为表或字段定义别名,但在调用`count()`时,应直接使用列名或别名,而不是整个对象,如`count(*)`或`count...

    Hibernate HQL教程

    - **解释**: `DISTINCT`关键字用于去除结果中的重复项。 ##### 1.1.7 删除对象 - **语法**: ```hql DELETE FROM Student s WHERE s.id = :id; ``` - **解释**: 使用`DELETE`语句删除符合条件的对象。 ##### ...

    HIBERNARE ppt

    HQL支持参数绑定,即在查询中使用`?`作为占位符,然后在执行查询时传入参数。例如,`Session.find("from User user where user.name=? and user.age=?", "hello", new Integer(20))`将查找名字为"hello"且年龄为20的...

    hql查询语句

    在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。HQL(Hibernate Query Language)是Hibernate提供的一种SQL的面向对象版本,用于在...

    DetachedCriteria查询

    `criteria.setProjection(Projections.countDistinct("key"));` 动态关联查询 可以使用 `setFetchMode()` 方法设置关联查询的fetch模式,例如: `List cats = sess.createCriteria(Cat.class)` `.add...

    进阶查询herbinate

    对于统计操作,Hibernate的`Projections`类提供了多种方法,如`avg()`用于计算平均值,`rowCount()`计算记录数,`count()`统计总数,`max()`获取最大值,`min()`获取最小值,以及`countDistinct()`计算唯一值的数量...

    java中数据库应用

    9. **DISTINCT关键字**:如果使用DISTINCT,vt8中的重复行将被移除,形成vt9。 10. **ORDER BY子句**:最后,ORDER BY按照指定的列列表对结果进行排序,生成游标vc10。 11. **TOP关键字**(在某些数据库系统中):...

    HQL经典查询语句[文].pdf

    例如,如果想要从`customer`表中获取所有不重复的客户名称,可以使用`distinct`关键字。下面的代码展示了如何实现这一点: ```java Iterator iterator = session.createQuery("select distinct c.name from ...

    NHibernate hql 可用函数,函数大全

    - **示例**: `SELECT t.title, COUNT(*) FROM Topic t GROUP BY t.title HAVING COUNT(*) **7. 子查询与存在性判断** - **Exists**: 用于判断子查询是否存在结果。 - **示例**: `FROM Topic t WHERE NOT EXISTS...

    HQL 语法总结 实体查询

    另外,可以在 `SELECT` 子句中使用统计函数,例如 `COUNT(*)`, `MIN()`, `MAX()` 等,也可以使用 `DISTINCT` 关键字来去除重复记录: ```java String hql = "select distinct user.name from TUser as user"; ``` ...

    Java程序员面试题大全

    - 统计x字段不同情况的个数,以及输出条数大于200的情况:`SELECT COUNT(DISTINCT x) AS distinct_count, SUM(CASE WHEN count(x) > 200 THEN 1 ELSE 0 END) AS more_than_200 FROM (SELECT x, COUNT(*) FROM A ...

    java软件工程师笔试题

    - 计算读者人数:`SELECT COUNT(DISTINCT reader_unit) FROM Borrow WHERE reader_unit = 'A 公司'` 以上是Java软件工程师笔试题涉及的知识点详解,涵盖了Java语言基础、Web开发、数据库操作等多个领域,对于准备...

    超级详细的hql查询语句教程

    当查询中包含可能重复的值时,可以使用DISTINCT去除重复项: ```hql SELECT DISTINCT s.sdept FROM Student s ``` 此查询将返回所有不同的系别名称。 ##### 2.7 删除对象 虽然HQL主要用于查询,但也可以用于删除...

Global site tag (gtag.js) - Google Analytics