在此查询中:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery q = cb.createTupleQuery();
// FROM GamePlayedEvent gpe
Root gpe = q.from(GamePlayedEvent.class);
// SELECT gameId, COUNT(*) AS count, AVG(duration)
// AS avDur, AVG(rewardCurrency) AS avCur, AVG(rewardXP) avXp
q.select(cb.tuple(
gpe.get("gameId"),
cb.count(gpe).alias("count"),
cb.avg(gpe.get("duration")).alias("avDur"),
cb.avg(gpe.get("rewardCurrency")).alias("avCur"),
cb.avg(gpe.get("rewardXp")).alias("avXp")
));
// WHERE loginTime BETWEEN ...
q.where(cb.between(gpe.get("time"), fromTime, toTime));
// GROUP BY gameId
q.groupBy(gpe.get("gameId"));
// ORDER BY count DESC
q.orderBy(cb.desc(???));
如何添加ORDER BY计数DESC,引用SELECT子句中定义的“count”?