永发信息网

Oracle 数据库查询登陆信息

答案:2  悬赏:0  手机版
解决时间 2021-02-06 21:23
  • 提问者网友:世勋超人
  • 2021-02-06 07:15
有一张登陆信息表
登陆信息表(logininfo)
id int,
logindate date,
userid varcher(20)
怎么查询某一个时间段内(比如2013-06-08到2013-07-08),每天至少登陆一次的userid?
最佳答案
  • 五星知识达人网友:过活
  • 2021-02-06 08:30
楼上的查出来的应该是时间段内至少登陆过一次的吧?应该不是时间段内每天至少登陆过一次的,应该是让统计出来的次数和时间段内的天数是相等的。
SELECt USERID,COUNT(1)
FROM LOGIN_MESSAGE WHERe
LOGINDATE
BETWEEN TO_DATE( '2013-06-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND TO_DATE( '2013-06-04 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
GROUP BY USERID HAVINg COUNT(1)=(TO_DATE( '2013-06-04', 'YYYY-MM-DD')-TO_DATE( '2013-06-01', 'YYYY-MM-DD'))+1;

上边这个也是不对的,应该统计的是去重后的logindate,下班这个应该没有问题

SELECt USERID,COUNT(DISTINCT(LOGINDATE))
FROM LOGIN_MESSAGE WHERe
LOGINDATE
BETWEEN TO_DATE( '2013-06-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND TO_DATE( '2013-06-04 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
GROUP BY USERID HAVINg COUNT(DISTINCT(LOGINDATE))=TO_DATE( '2013-06-04', 'YYYY-MM-DD')-TO_DATE( '2013-06-01', 'YYYY-MM-DD')+1;
全部回答
  • 1楼网友:北方的南先生
  • 2021-02-06 09:44
查看一下数据库现有的进程数,是否已经达到参数processes的大小。 1.select count(*) from v$process; 取得数据库目前的进程数。 2.select value from v$parameter where name = 'processes'; 取得进程数的上限。 3.如已达到上限,修改initsid.ora中的processes的大小。 4.重新启动数据库到nomount状态下,执行create spfile from pfile; 并startup open。 查询数据库自启动以来最大的并发数量 修改最大连接数: alter system set processes = 300 scope = spfile; 重启数据库: shutdown immediate; startup;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯