一个表 a 表示登录日志 
| LoginDate    | timestamp   |
| UserName     | varchar(50) |另一个表b 账号注册表
+-----------------+--------------+
| Reg_ID          | int(11)      |
| From_AD_ID      | int(11)      |
| From_WebMan_ID  | int(11)      |
| From_WebSite_ID | int(11)      |
| Reg_Time        | datetime     |
| UserName        | varchar(255) |
我怎样根据这两个表统计出 每天首次登录的人数 
按 From_AD_ID From_WebMan_ID From_WebSite_ID 日期 这四个字段统计。
求教高人指点

解决方案 »

  1.   

    try
    select logindate,
           From_AD_ID From_WebMan_ID From_WebSite_ID,
           count(username)
      from b,
           (select distinct UserName, to_char(LoginDate, 'yyyy-mm-dd') logindate
              from a) a
     where a.username = b.username
     group by logindate, From_AD_ID From_WebMan_ID From_WebSite_ID, logindate
      

  2.   

    SELECT from_ad_id from_webman_id from_website_id
      FROM (SELECT logindate,
                   username,
                   row_number() over(PARTITION BY username ORDER BY logingdate) rn
              FROM a) m,
           b n
     WHERE m.rn = 1
       AND m.username = n.username
      

  3.   

    /--LZ给的字段的含义最好解释一下:
    /--是否为:select count(*)
      from tableA a, tableB b
     where a.username = b.username
       and to_char(a.logindate, 'yyyymmdd') =
           (select min(to_char(reg_time, 'yyyymmdd')) from tableB);
      

  4.   

    /--LZ给的字段的含义最好解释一下:
    /--是否为:select count(*)
      from tableA a, tableB b
     where a.username = b.username
       and to_char(a.logindate, 'yyyymmdd') =
           (select min(to_char(reg_time, 'yyyymmdd')) from tableB);
      

  5.   


    with temp as (
     select tt.*,row_number()over(PARTITION BY username ORDER BY logingdate) dd from a
    )
    select From_AD_ID,From_WebMan_ID,From_WebSite_ID,temp.LoginDate
    from b,temp where temp.username=b.username and temp.dd=1
      

  6.   

    数据库表的设计好像有问题,UserName不是主键吧
      

  7.   

    第二楼的方法好像不行 我需要的是首次登录的次数回答第三楼字段含义:一个表 a 表示登录日志 
    LoginDate   登录日期
    UserName    登录帐号
    另一个表b 账号注册表 
    +-----------------+--------------+ 
    Reg_ID          自增
    From_AD_ID      来源广告
    From_WebMan_ID  来源站长
    From_WebSite_ID 来源网站
    Reg_Time        注册时间
    UserName        用户名还有不好意思 我这个是用的mysql数据库
      

  8.   

    --统计每天首次登录的人数sql如下:
     select trunc(t.LoginDate), count(1)
       from (select UserName,
                    LoginDate,
                    row_number over(partition by UserName order by LoginDate) RN
               from a
              where RN = 1) t
      group by trunc(t.LoginDate)--按 From_AD_ID From_WebMan_ID From_WebSite_ID 日期 这四个字段统计。----这句统计和人数统计放一起?好象不太合理.
      

  9.   

    --按 From_AD_ID From_WebMan_ID From_WebSite_ID 日期 这四个字段统计
     select t.UserName,
            b.From_AD_ID,
            b.From_WebMan_ID,
            b.From_WebSite_ID,
            t.LoginDate
       from (select UserName,
                    LoginDate,
                    row_number over(partition by UserName order by LoginDate) RN
               from a
              where RN = 1) t,
            b
      where t.UserName = b.UserName
      

  10.   

    多谢大家,方法已经出来了,也是别人告诉我的 呵呵select from_ad_id, from_webman_id, from_website_id, first_LoginDate, count(*)
      from (select username,trunc(min(LoginDate)) first_LoginDate
             from a
            group by username
           ) a2
          ,b
    where a2.username = b.username
    group by from_ad_id, from_webman_id, from_website_id, first_LoginDate;