我有这个 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/