微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle SQL查询视图登录会话和用户名

如何解决Oracle SQL查询视图登录会话和用户名

我有一个查询,有人在这里帮助我处理了登录会话的详细信息,并将其组合以进行绘图,但是在单击日期时似乎也需要查看这些用户,我们为此使用了元数据库

原始数据如下:

+-------------------+---------------------+-----------+---------------+-------------------+---------------------+---------------------+--------------+---------+----------+
| Lo Gon Session ID | Authentication Type | Node Name |   Server IP   | Session End Cause | Session Finish Time | Session Start Time  | Session Type | User ID | Username |
+-------------------+---------------------+-----------+---------------+-------------------+---------------------+---------------------+--------------+---------+----------+
|             45294 | USERNAME_PASSWORD   | prod_3    | 10.244.17.137 | SESSION_TIMEOUT   | 2020-07-27T18:06:07 | 2020-07-27T17:01:50 | WEB          |  100698 | kekane_k |
|             45640 | USERNAME_PASSWORD   | prod_3    | 10.244.17.137 | SESSION_TIMEOUT   | 2020-08-03T13:50:08 | 2020-08-03T10:45:35 | WEB          |  100440 | mabula_s |
|             45793 | USERNAME_PASSWORD   | prod_4    | 10.244.17.137 | SESSION_TIMEOUT   | 2020-08-05T10:54:12 | 2020-08-05T09:35:33 | WEB          |  102129 | hoose_s  |
|             45798 | USERNAME_PASSWORD   | prod_4    | 10.244.17.137 | SESSION_TIMEOUT   | 2020-08-05T11:43:48 | 2020-08-05T10:34:26 | WORKBENCH    |  100348 | phalat_k |
|             45466 | USERNAME_PASSWORD   | prod_3    | 10.244.17.137 | SIGN_OUT          | 2020-07-30T08:38:09 | 2020-07-30T08:38:05 | WEB          |  101688 | jazzuser |
|             45468 | USERNAME_PASSWORD   | prod_3    | 10.244.17.137 | SESSION_TIMEOUT   | 2020-07-30T13:30:37 | 2020-07-30T09:24:58 | WEB          |  100698 | kekane_k |
|             45687 | USERNAME_PASSWORD   | prod_3    | 10.244.17.137 | SESSION_TIMEOUT   | 2020-08-03T21:42:09 | 2020-08-03T17:01:18 | WEB          |  101273 | nel_d    |
+-------------------+---------------------+-----------+---------------+-------------------+---------------------+---------------------+--------------+---------+----------+

我们的SQL查询如下:

with temp as ( 
                select 
                    trunc("PPM"."PPM_logoN_SESSIONS"."SESSION_START_TIME",'hh') as "dte",1 as "inc" 
                from "PPM"."PPM_logoN_SESSIONS" 
                where 
                    (trunc("PPM"."PPM_logoN_SESSIONS"."SESSION_START_TIME",'hh')) 
                    between (trunc("PPM"."PPM_logoN_SESSIONS"."SESSION_START_TIME",'hh')) 
                    and (trunc("PPM"."PPM_logoN_SESSIONS"."SESSION_FINISH_TIME",'hh')) 
                    and "SESSION_START_TIME" > trunc((CAST(SYSDATE AS timestamp) + numtodsinterval(-30,'day')),'day') 

                union all 

                select 
                    trunc("PPM"."PPM_logoN_SESSIONS"."SESSION_FINISH_TIME",-1 as "inc" 
                from "PPM"."PPM_logoN_SESSIONS" 
                where 
                    (trunc("PPM"."PPM_logoN_SESSIONS"."SESSION_START_TIME",'day') 
            ) 
select 
    max("concurrent") as "concurrent",trunc("dte",'dd') as "dte" 
from 
    (
        select * 
        from (
                select 
                    trunc("dte",'dd') as "dte",sum(sum("inc")) over (order by "dte") as "concurrent" 
                from temp 
                group by "dte" 
            ) 
    ) 
where "dte" > trunc((CAST(SYSDATE AS timestamp) + numtoyminterval(-4,'month')),'month') 
group by trunc("dte",'dd') 
order by "dte" desc

它提供了这样的图形

https://ibb.co/c67BSQf

但是我需要一些可能会显示以下内容的东西:

+----------------------+----------+
|      Time Stamp      | Username |
+----------------------+----------+
| 2020-07-27T18:00:00  | kekane_k |
| 2020-07-27T18:01:00  | mabula_s |
| 2020-07-27T18:20:00  | hoose_s  |
| 2020-07-27T18:20:00  | phalat_k |
| 2020-07-27T18:20:00  | jazzuser |
| 2020-07-27T18:40:00  | kekane_k |
| 2020-07-27T18:40:00  | nel_d    |
| 2020-07-27T19:022:00 | sekget_g |
| 2020-07-27T19:022:00 | vanton_e |
| 2020-07-27T19:022:00 | marai_h  |
| 2020-07-27T19:022:00 | crawfo_r |
| 2020-07-27T19:022:00 | hamman_k |
+----------------------+----------+

其中用户按相同的时间戳分组,因此,如果用户登录3分钟,则名称将出现在分钟1,分钟2和分钟3中,但是将从分钟4中将其删除,在分钟2中将其删除另外3 users logon意味着至少2分钟内应该有3个用户

顺便说一句,我不介意将数据导入Postgresql数据库

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。