ORACLE 的统计一直是我弱点,最近想买需要统计下面这个东西,客户端提供几个参数可以进行查询:例如 部门名称 登录的记录都在一张表,但是记录的都是别的表的ID 例如System_log 字段如下 LOG_ID //日志ID
USER_ID //登录ID :用户表T_user
DEPARTMENT_ID //部门ID :部门表 DPCODE //完整部门ID :部门表
LOGINIP //IP
LOGINTIME //登录时间
STATE //登录状态
ONLINETIME //在线时间 每次登录都插入一条如上的记录。还希望大侠们帮帮忙,挺急的
部门 登录人数 登录次数
支撑中心_运营管理室 11 11
市区营销中心_集团客户部 11 11
总计 22 22
USER_ID //登录ID :用户表T_user
DEPARTMENT_ID //部门ID :部门表 DPCODE //完整部门ID :部门表
LOGINIP //IP
LOGINTIME //登录时间
STATE //登录状态
ONLINETIME //在线时间 每次登录都插入一条如上的记录。还希望大侠们帮帮忙,挺急的
部门 登录人数 登录次数
支撑中心_运营管理室 11 11
市区营销中心_集团客户部 11 11
总计 22 22
union
select '总计', sum(s.c) from (select dep_id,count(user_id) c from System_log where state=1 group by dep_id) s这样试试
状态为1时表示登陆状态
不明白你登陆次数是什么意思
dep表是部门表
推荐你看一下这个函数。over 它就是一个统计函数。完全可以解决你的问题。
select
d.DPCODE as "部门名称",
sum(l.user_id) as "登录人数",
sum(l.log_id) as "登录次数"
from 部门表 d,登录信息表 l
where
d.DEPARTMENT=DEPARTMENT_ID
union all
select
' ' as "总计",
sum(l.user_id) as "登录人数",
sum(l.log_id) as "登录次数"
from 部门表 d,登录信息表 l
少一句, uinon all 最下面 加一个 表关联
select
d.DPCODE as "部门名称",
sum(l.user_id) as "登录人数",
sum(l.log_id) as "登录次数"
from 部门表 d,登录信息表 l
where
d.DEPARTMENT=DEPARTMENT_ID
group by d.dpcode
union all
select
d.DPCODE as "部门名称",
sum(l.user_id) as "登录人数",
sum(l.log_id) as "登录次数"
from 部门表 d,登录信息表 l
where
d.DEPARTMENT=DEPARTMENT_ID
这个 是正确的 4楼 少些一个 group by 和关联
- -、最近加班 脑袋 走跑空