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
 

解决方案 »

  1.   

    select d.dep_name,s.c  from (select dep_id,count(user_id) c from System_log where state=1 group by dep_id) s,dep d where s.dep_id=d.dep_id 
    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表是部门表
      

  2.   

    http://www.cnblogs.com/umen/archive/2011/04/11/2012136.html
    推荐你看一下这个函数。over  它就是一个统计函数。完全可以解决你的问题。
      

  3.   

    sql分组统计,你先用group by 试试 慢慢调
      

  4.   

    不知道你的表结构 和 数据录入是什么样子,只写一个思路 你参考一下
    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
      

  5.   


    少一句, uinon all 最下面 加一个 表关联
      

  6.   


    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  和关联 
    - -、最近加班 脑袋 走跑空