永发信息网

Oracle 数据库查询登陆信息

答案:2  悬赏:0  手机版
解决时间 2021-02-06 21:23
有一张登陆信息表
登陆信息表(logininfo)
id int,
logindate date,
userid varcher(20)
怎么查询某一个时间段内(比如2013-06-08到2013-07-08),每天至少登陆一次的userid?
最佳答案
楼上的查出来的应该是时间段内至少登陆过一次的吧?应该不是时间段内每天至少登陆过一次的,应该是让统计出来的次数和时间段内的天数是相等的。
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;
全部回答
查看一下数据库现有的进程数,是否已经达到参数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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
野史大求真房玄龄怕老婆里杜大人跳舞的音乐叫
国行iPhone6s在日本能用吗
【食品的分类】英语关于食物的分类1、food:2
白蛇传中白素贞受伤的有哪几集?
4399赛尔号如何刷永久vip
epsonlp-90kp打印机无法安装是怎么回事
魅族账号怎么彻底清除
青岛海化所是不是青岛海洋化工研究院?
建筑物高程控制的水准点,可单独埋设在建筑物
国道308齐河段是区间限速吗
性格用日语怎么说
桃花源记道士55级带什么宝宝好.?
申沟农副产品基地(西门)地址在什么地方,想过
各位,香河哪有英语培训中心啊,教三四岁
李六路地址在哪,我要去那里办事
推荐资讯
《桃花源记2》的世界频道组队别人喊15+15是什
停车场(南门街)(南门街与镇前路交叉口南50米
阿健发室地址在哪,我要去那里办事
男主演的名字叫石光荣的电视剧叫什么?
准格尔旗魏家峁中学地址有知道的么?有点事想
请叙述普通股和优先股各自的特点
【大的反义词】大的反义词是
无明矾放心油条在什么地方啊,我要过去处理事
华为手机fastboot怎么刷机
东方御足在哪里啊,我有事要去这个地方
我电脑XP系统,应该选择多少像素显示为合适?
16进制2c转化成十进制和10进制75转换成2进制
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?