Oracle SQL语法在24小时时间内查找不同的数据

时间:2015-02-07 19:09:56

标签: sql oracle

我有一个表来跟踪用户登录应用程序的历史记录。目前,自从浏览器会话到期以来,此表每天都有多次登录。我需要编写一个查询,以便为每个用户提供不同的用户名,这些用户在应用程序生命周期内(超过一年)在24小时内登录。我需要摆脱多次每日登录。如何使用下面的date_created timestamp字段在24小时时间范围内组合一个不同的?

表名:LOGIN_HISTORY

Name         Null     Type               
------------ -------- ------------------ 
ID           NOT NULL NUMBER(19)         
DATE_CREATED          TIMESTAMP(6)       
USER_NAME             VARCHAR2(255 CHAR) 

2 个答案:

答案 0 :(得分:1)

如果您想每天选择不同的用户,请选择日期和用户,并使用DISTINCT关键字将其区分开来:

select distinct trunc(date_created), user_name
from login_history
order by trunc(date_created);

答案 1 :(得分:0)

  

"通过24登录的每个用户的不同用户名   小时时间"

为什么不使用DISTINCT?

  

"我将如何动态运行多年?"

通过过滤WHERE子句中的日期:

select distinct trunc(date_created) as login_date
         , user_name
from login_history
where date_created >= to_date('&&start_date', 'DD-MON-YYYY')
and  date_created < add_months(to_date('&&start_date', 'DD-MON-YYYY'),12)