前言:
真的是差点没绕死我!脑细胞都不够用了
查询登陆过的人数 SELECT COUNT() FROM SYS_L_LOGIN where LOGOUT_TIME is NULL; SELECT COUNT() FROM SYS_L_LOGIN where LOGOUT_TIME is not NULL;
查询登陆的时间 SELECT LOGOUT_TIME FROM SYS_L_LOGIN where LOGOUT_TIME is not NULL; 1 查询这个表的全部 SELECT * FROM SYS_L_LOGIN;
2 这个是查询表空间的详细信息 Select * From Dba_Tablespaces;
只查询表空间名 Select TABLESPACE_NAME From Dba_Tablespaces;
3 SELECT * FROM WHGH_DATA;
4 查询这个表空间下的所有表名 select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME=’WHGH_DATA’;
5 查询人数的 默认升序排列 select LOGOUT_TIME,sum() people from SYS_L_LOGIN group by LOGOUT_TIME order by people;
6, 这样会提取到重复的数据 也就是会累计一个用户一天的重复登陆次数 select day LOGOUT_TIME,sum(USER_ID) people from (Select DISTINCT to_date(LOGOUT_TIME,’yyyy-MM-dd’) day,USER_ID from SYS_L_LOGIN )group by day order by people;
7 为了不提取重复的数据 select rownum,day,USER_ID from ( Select to_date(LOGOUT_TIME,’yyyy-MM-dd’) day,USER_ID from SYS_L_LOGIN )group by day,USER_ID; 因为group的时候不能使用rownum 无奈之举啊 用了三层嵌套 后来又加了一层
8 第一层我需要提取一下日期 第二层 我将用户和时间一组 这样还是会有重复的数据,所以我就只取了名称,而没有计数,这样就只默认有组名 第三层 在此基础上,我进行了编号 第四层的基础上,我针对日期进行了计数 select day LOGOUT_TIME,sum(rownum) people from (select rownum ,day,USER_ID from (select day,USER_ID from ( Select to_date(LOGOUT_TIME,’yyyy-MM-dd’) day,USER_ID from SYS_L_LOGIN )group by day,USER_ID))group by day order by people;
9 这是在oracle中,提取日期的方法 Select to_date(LOGOUT_TIME,’yyyy-MM-dd’) from SYS_L_LOGIN;
10 这是在mysql中的提取方法 Select CONVERT(varchar(30),LOGOUT_TIM,20) day,USER_ID from SYS_L_LOGIN
11.rownum和rownum() 编好用的