Oracle查询每一个用户的最后一个登录时间
来源:互联网 发布:西游之路法宝进阶数据 编辑:程序博客网 时间:2024/05/17 23:37
使用row_number() OVER(PARTITION BY)函数
SQL:
SELECT LOGIN_DATE, USER_ID FROM (SELECT ROW_NUMBER() OVER(PARTITION BY T.USER_ID ORDER BY T.LOGIN_DATE DESC) RN, T.LOGIN_DATE, T.USER_ID FROM ACNT.TB_ACNT_USER_LOGIN T) WHERE RN = 1
row_number()over()、rank()over()和dense_rank()over()函数的使用
下面以班级成绩表t2来说明其应用
t2表信息如下:
cfe 2 74
dss 1 95
ffd 1 95
fda 1 80
gds 2 92
gf 3 99
ddd 3 99
adf 3 45
asdf 3 55
3dd 3 78
select * from
(
select name,class,s,rank()over(partition by class order by s desc) mm from t2
)
where mm=1;
得到的结果是:
dss 1 95 1
ffd 1 95 1
gds 2 92 1
gf 3 99 1
ddd 3 99 1
注意:
1.在求第一名成绩的时候,不能用row_number(),因为如果同班有两个并列第一,row_number()只返回一个结果;
select * from
(
select name,class,s,row_number()over(partition by class order by s desc) mm from t2
)
where mm=1;
1 95 1 –95有两名但是只显示一个
2 92 1
3 99 1 –99有两名但也只显示一个
2.rank()和dense_rank()可以将所有的都查找出来:
如上可以看到采用rank可以将并列第一名的都查找出来;
rank()和dense_rank()区别:
–rank()是跳跃排序,有两个第二名时接下来就是第四名;
select name,class,s,rank()over(partition by class order by s desc) mm from t2
dss 1 95 1
ffd 1 95 1
fda 1 80 3 –直接就跳到了第三
gds 2 92 1
cfe 2 74 2
gf 3 99 1
ddd 3 99 1
3dd 3 78 3
asdf 3 55 4
adf 3 45 5
–dense_rank()l是连续排序,有两个第二名时仍然跟着第三名
select name,class,s,dense_rank()over(partition by class order by s desc) mm from t2
dss 1 95 1
ffd 1 95 1
fda 1 80 2 –连续排序(仍为2)
gds 2 92 1
cfe 2 74 2
gf 3 99 1
ddd 3 99 1
3dd 3 78 2
asdf 3 55 3
adf 3 45 4
–sum()over()的使用
select name,class,s, sum(s)over(partition by class order by s desc) mm from t2 –根据班级进行分数求和
dss 1 95 190 –由于两个95都是第一名,所以累加时是两个第一名的相加
ffd 1 95 190
fda 1 80 270 –第一名加上第二名的
gds 2 92 92
cfe 2 74 166
gf 3 99 198
ddd 3 99 198
3dd 3 78 276
asdf 3 55 331
adf 3 45 376
详细请参照连接:http://blog.csdn.net/631799/article/details/7419797
- Oracle查询每一个用户的最后一个登录时间
- Oracle查询所有用户表的最后修改时间
- 取得每个用户登录次数和最后登录的时间
- jsp之记录用户登录的总次数以及记录用户最后一次登录的时间
- Win7系统查看最后登录时间的方法 win7电脑记录用户登录时间的查看
- 查询目前已登录的用户,用户最近登录的时间
- Mysql查询一个表最后访问时间
- 查询Oracle当前登录用户的所有权限
- 查询用户上次登录时间问题
- 活动目录中如何查看用户最后一次登录时间
- Oracle,查询表的创建时间和最后修改时间sql
- Oracle查询某用户下的表,创建时间
- 控制用户登录的时间
- ssh 登录会显示最后一个用户,scope prototype
- 查询存储过程的最后修改时间
- oracle 查询表中数据行(row)上最后的DML时间
- oracle 查询表中数据行(row)上最后的DML时间
- 编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果
- Dependency Inversion Principle 依赖反转原则
- mutable和volatile
- Android中MediaRecorder详解
- 使用AntiSamy防范XSS跨站脚本攻击
- spring cloud Hystrix
- Oracle查询每一个用户的最后一个登录时间
- 初中OI打味极鲜记 (掺杂大量无关内容)
- php 解决json_encode中文UNICODE转码问题
- //图片预览
- C++反射的实现
- Codeforces 567E President and Roads 题解
- C++二维数组作为函数参数传递
- 三个例子,搞懂java中的main参数String[] args
- 23个设计模式