小码问答,有问必答!

写出SQL语句

现在有表:

A(id ,name,regdate) B(id,groupid) C(id,name2) 

写出下面的SQL语句 

1)统计A表中每个月注册用户数

2)统计A表中有姓名相同的用户数

3)如果表A中有姓名相同的用户,把相同的查出,写入表C中 

4)A中ID有多个相同的数据,A中姓名相同的ID只保留注册时间最大的数据


数据库

收藏

1个回答

我要回答

  • author
    牛叔叔 2019-06-12 19:13

    1)统计A表中每个月注册用户数

    select month(regdate),count(*) from a group by month(regdate)

    2)统计A表中有姓名相同的用户数

    不知道理解的这个相同用户数对不对,按照只要姓名相同都统计算。

    select sum(namecount) 
    from (
    select count(*) as namecount from a group by name having count(*)>1
    )
    as t

    3)如果表A中有姓名相同的用户,把相同的查出,写入表C中 

    insert into c (name2) select name   from a group by name having count(*)>1

    4)A中ID有多个相同的数据,A中姓名相同的ID只保留注册时间最大的数据

    id相同?应该是A中有多个姓名相同的数据,删除重复的,保留注册时间最大的一条。