java - JPA QueryDSL 按天计数聚合

标签 java mysql hibernate jpa querydsl

我有这个 SQL 查询。它返回每天生成的事件数。

SELECT DATE_FORMAT(`timestamp`, "%y-%m-%d") AS date , COUNT(*) 
FROM `Event` 
WHERE `active`=1 
GROUP BY date

输出

 |   date   |   Count   |
 ------------------------
 | 14-09-29 |     1     |
 | 14-11-02 |     1     |
 | 14-11-03 |     3     | 
     ...         ...

我想在 JPA QueryDSL 上执行此查询,但我不知道该怎么做,因为我还没有找到执行 DATE_FORMAT('timestamp', "%y-%m-%d ") AS 日期

是否可以在 JPA QueryDSL 上执行此查询或不能通过限制完成?

谢谢。

最佳答案

最后我用这个查询解决了它。我还添加了日期范围过滤器。

 QEvent qEvent = QEvent.event;

 JPAQuery query = new JPAQuery(entityManager);

 return query.from(qEvent)
                 .where(qEvent.active.eq(true)
                    .and(qEvent.sensorId.equalsIgnoreCase(sensorId)
                    .and(qEvent.timestamp.after(rangeStart)
                    .and(qEvent.timestamp.before(rangeEnd)))))
             .groupBy(qEvent.timestamp.dayOfYear())
             .list(new QTuple(qEvent.timestamp, Wildcard.count));

感谢您的帮助。

关于java - JPA QueryDSL 按天计数聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937196/

相关文章:

eclipse - 使用 Maven 和 m2e 插件在 Eclipse 中添加 hibernate 依赖项

hibernate - JPA EntityManager 在合并时执行数据库插入?

java - 数组的 jOOQ 查询的奇怪翻译包含函数

mysql - Amazon RDS (MySQL) -> 本地开发/测试服务器主-主或主-从+示例?

java - Java中不插入MySQL数据库

mysql - Rails 查询 - 条件连接

mysql - 如何在 spring 上映射大写列名

java - 为什么有些库会与源代码和 javadoc jar 文件一起分发?

java - 有没有办法使用 JDBC 连接器设置 mysql 变量?

java - Liferay : How to get user profilePicURL without ThemeDisplay in serviceImpl classes?