我有一个表来跟踪用户登录应用程序的历史记录。目前,自从浏览器会话到期以来,此表每天都有多次登录。我需要编写一个查询,以便为每个用户提供不同的用户名,这些用户在应用程序生命周期内(超过一年)在24小时内登录。我需要摆脱多次每日登录。如何使用下面的date_created timestamp字段在24小时时间范围内组合一个不同的?
表名:LOGIN_HISTORY
Name Null Type
------------ -------- ------------------
ID NOT NULL NUMBER(19)
DATE_CREATED TIMESTAMP(6)
USER_NAME VARCHAR2(255 CHAR)
答案 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)