我有一張表跟蹤用戶對應用程序的登錄歷史記錄。目前,這張表對於大多數用戶來說每天都有幾次登錄,因爲他們的瀏覽器會話過期了。我需要編寫一個查詢,以爲每個在應用程序的生命週期(一年以上)內24小時內登錄的用戶提供不同的用戶名。我需要擺脫多次每日登錄。如何使用下面的date_created時間戳字段在24小時的時間範圍內組合獨特的?用於在24小時內查找不同數據的Oracle SQL語法時間段
表名:LOGIN_HISTORY
Name Null Type
------------ -------- ------------------
ID NOT NULL NUMBER(19)
DATE_CREATED TIMESTAMP(6)
USER_NAME VARCHAR2(255 CHAR)
對於許多用戶,date_created的數據類似2014-04-08 01:39:11.684000。當我運行你的建議時,它會比2014-04-08更好地濾除它。 – c12 2015-02-07 19:59:42
我不明白。它過濾掉重複。如果在2014年4月8日你有1000個不同的用戶,它會告訴你這些1000個用戶2014-04-08,無論他們是登錄一次還是一天100萬次。這不正是你要求的嗎? – 2015-02-07 20:04:13
此查詢返回16個記錄從login_history where trunc(date_created)= to_date('08 -APR-2014','DD-MON-YYYY')select distinct user_name 但當我運行select distinct trunc(date_created)時,user_name 從login_history開始,它僅返回08-APR-2014的一行。每天有多個用戶登錄。我只想知道每天在表中給定日期範圍或整個範圍內登錄的不同用戶。其他一些日子會返回多個記錄,但如果手動驗證,它永遠不會匹配正確的記錄數。 – c12 2015-02-07 20:16:14