当前位置:编程学习 > JAVA >>

ORACLE统计语句,需要朋友帮帮忙

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
  
  --------------------编程问答-------------------- 没有看懂你的意思?
--------------------编程问答-------------------- 其实就是统计每个用户的登录次数,可以写个存储过程供,登录成功后程序调用存储过程插入数据,传个用户ID参数就好了,判断该用户的数据是否存在,有就update登录次数+1否则inset  统计表基本字段可以设计为(id系统编码,部门ID,用户ID,登录次数),有其他需求可以再加
总计( 用户数count下就好了,登录数sum下 )
基本就这样,具体看你统计需求 --------------------编程问答-------------------- 可以写两条sql,一条是根据部门分组统计,另一个求和。 --------------------编程问答-------------------- --------------------编程问答-------------------- 首先查询出各个部门的登录次数和人数,然后通过union all将总计加进去,
代码如下:

SELECT
B.DEPARTMENT_NAME AS DEPARTMENT_NAME,
COUNT(DISTINCT A.USER_ID) AS LOGINPERSONS,
COUNT(A.USER_ID) AS LOGINTIMES
FROM
SYSTEM_LOG A,
DEPARTMENT B
WHERE
A.DEPARTMENT_ID = B.DEPARTMENT_ID
GROUP BY
A.DEPARTMENT_ID
UNION ALL
SELECT
'总计' AS DEPARTMENT_NAME,
COUNT(DISTINCT A.USER_ID) AS LOGINPERSONS,
COUNT(A.USER_ID) AS LOGINTIMES
FROM
SYSTEM_LOG A

--------------------编程问答-------------------- selelct count(XXX)XXXX 然后做成一个视图,每次都查那个视图
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,