2017-05-03 169 views
0

我想下面嵌套查詢與HQL或CriteriaBuilder查詢

說明提到獲得通過查詢組的結果是:我有一個設置logdetail表,它有CREATED_DATE領域和用戶ID字段。我想知道每天有多少用戶登錄。該CREATED_DATE列是DateTime類型的

select t, count(t) from (select substr(created_date,0,10) as t from logdetail) group by t 

如果我運行內部查詢,它工作正常,但是當我運行嵌套查詢得到錯誤... "unexpected token: (near line 1, column 32"

 
    
    ID  User LoginDate    LogoutDate 
    a000001 Arvind 06-05-17 12:15:00 06-05-17 12:13:00 
    a000002 Murty 07-05-17 12:15:00 07-05-17 12:51:00 
    a000003 John 07-05-17 12:15:00 07-05-17 12:42:00 
    a000004 John 07-05-17 02:27:00 07-05-17 03:25:00 
    a000001 Tej  08-05-17 12:15:00 08-05-17 02:15:00 
    a000001 John 08-05-17 12:15:00 08-05-17 01:55:00 
    

從上面的表格預期結果

 
    
    LoginDate Frequency 
    06-05-17 01 
    07-05-17 03 
    08-05-17 02 
    

注:源表具有相同的用戶john和第二點的多次入境的源日期字段日期時間都這樣,首先我們需要獲取日期p藝術只從它,然後應用分組

我正在尋找在HQL或條件生成器查詢的解決方案。

有沒有人有想法呢?

+0

它會是每個用戶一次登錄還是同一用戶的多次登錄,您仍然需要計數。另外如果可能的話,你可以發佈結果你期望在這裏 – murthy

+0

已更新我的問題。 –

回答

1

您可以嘗試如下

SQL查詢得到的結果

Select trunc(LoginDate), count(ID) from logdetail group by trunc(LoginDate); 

HQL查詢中同樣會

select trunc(ld.loginDate), count(ld.Id) from logDetail ld group by trunc(ld.loginDate) 

注:在HQL查詢,地圖按在列的列映射

希望這能解決你的問題。