Unter Bezugnahme auf eine frühere, alias-Feld in einem Abfrage-Kriterien

In dieser Abfrage:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Tuple> q = cb.createTupleQuery();

//FROM GamePlayedEvent gpe
Root<GamePlayedEvent> 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.<String>get("gameId"),
    cb.count(gpe).alias("count"),
    cb.avg(gpe.<Double>get("duration")).alias("avDur"),
    cb.avg(gpe.<Integer>get("rewardCurrency")).alias("avCur"),
    cb.avg(gpe.<Integer>get("rewardXp")).alias("avXp")
));
//WHERE loginTime BETWEEN ...
q.where(cb.between(gpe.<Date>get("time"), fromTime, toTime));
//GROUP BY gameId
q.groupBy(gpe.<String>get("gameId"));
//ORDER BY count DESC
q.orderBy(cb.desc(???));

Wie kann ich die ORDER BY count DESC, bezieht sich auf das "zählen" definiert, in der SELECT - Klausel?

Schreibe einen Kommentar