2010-12-13 51 views
0

我的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.

回答