gpt4 book ai didi

java - 选择给定时间段内的唯一登录

转载 作者:行者123 更新时间:2023-12-02 08:26:24 26 4
gpt4 key购买 nike

我的 SQL 有点生疏,而 JPQL 对我来说是全新的。我有一个记录登录事件的表,其中有用户 ID 和时间。我正在尝试选择在指定时间段内发生的一系列登录事件中存在的唯一数量的用户 ID:

        Query query = em.createQuery(
"SELECT COUNT(*) FROM ( " +
"SELECT DISTINCT s.userId FROM UserSession s " +
"WHERE s.loginTime >= :fromTime " +
" AND s.loginTime < :toTime " +
") "
);
query.setParameter("fromTime", new Date(fromTime));
query.setParameter("toTime", new Date(toTime));

这给了我一个解析错误(FROM之后的(是意外的),所以这显然不是正确的方法。我应该做什么?

示例:如果我的记录 {A,B,B,A,A,C,A,B,D} 都在日期范围内,我希望查询返回 4。

最佳答案

Query query = em.createQuery(
"SELECT COUNT(DISTINCT s.userId) FROM UserSession s " +
"WHERE s.loginTime >= :fromTime " +
" AND s.loginTime < :toTime " +
);

来源:http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/queryhql.html#queryhql-aggregation

关于java - 选择给定时间段内的唯一登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com