问题描述
表A(id,name,regedate)表B(id,groupid)表C(id,name)求:1求出A表中每个月的注册用户,regedate格式是yyyy/mm/dd2求出A表中所有姓名相同的用户3A表中有相同名字的用户,把相同的选出来放入C表中4A表中姓名相同的id,保留注册最大时间的用户写出sql,谢谢2我只写出了第二个看对不对,同时其它的怎么写。selectnamefromAwherenamein(selectnamefromAwherecount(name)>1);同时有人把第二个这么写看对不select*fromAwherenamein(selecctnamefromAgroupbynamehavingcount(*)>1,他这么写对吗,groupby,不是反回单个吗,name同名的会有多个,也可以吗,,count(*)我就更不明白了
解决方案
解决方案二:
自己先好好看看sql,想一下,试着写一下,一般没人会回答这类问题的这些sql不是超难
解决方案三:
百度一下
解决方案四:
1.selectregedateas月份,count(1)as注册量from表Agroupbyregedate2.selectnamefrom表Agroupbynamehavingcount(name)>13.insertinto表Cselectid,namefrom表Awherenamein(selectnamefrom表Agroupbynamehavingcount(name)>1)4.deletefrom表Aasaawhereexists(select1from表Aasbbwherebb.name=aa.nameandbb.regedate>aa.regedate)--尾注,不是装,这些sql语句确实是很基础的,lz请多点实践
解决方案五:
该回复于2010-11-08 09:33:49被版主删除
解决方案六:
这样求不行,至少得冰天雪地赤身裸体跪玻璃渣求不过这些sql是基本的了找找资料相当容易的引用楼主yu_haiming1986的回复:
表A(id,name,regedate)表B(id,groupid)表C(id,name)求:1求出A表中每个月的注册用户,regedate格式是yyyy/mm/dd2求出A表中所有姓名相同的用户3A表中有相同名字的用户,把相同的选出来放入C表中4A表中姓名相同的id,保留注册最大时间的用户写出sql,谢谢2我只写出了第二个看对不对,同时其……
解决方案七:
1.什么数据库?所以时间类型转换不确定用什么转换2.也可以这样写selecta.*from表Aajoin表Aa1ona.id<>a1.idanda.name=b.name
解决方案八:
SELECTTO_CHAR(REGEDATE,'mm'),COUNT(1)FROMD301GROUPBYTO_CHAR(REGEDATE,'mm')ORDERBYTO_CHAR(REGEDATE,'mm')SELECTNAMEFROMAGROUPBYNAMEHAVINGCOUNT(1)>1INSERTINTOSELECTNAMEFROMAGROUPBYNAMEHAVINGCOUNT(1)>1DELETEFROMAWHEREREGEDATENOTINMAX(regedate)FROMAGROUPBYNAMEHAVINGCOUNT(1)>1
解决方案:
引用3楼abcjun188的回复:
1.selectregedateas月份,count(1)as注册量from表Agroupbyregedate2.selectnamefrom表Agroupbynamehavingcount(name)>13.insertinto表Cselectid,namefrom表Awherenamein(sel……
基础但是比较常用,标记一下
解决方案:
这个不是很难的啊,你说你写出来二个,不知道是哪二个,我看第三个和第四个比较难,我就给你写第三个和第四个吧表A(id,name,regedate)表B(id,groupid)表C(id,name)求:3A表中有相同名字的用户,把相同的选出来放入C表中4A表中姓名相同的id,保留注册最大时间的用户3insertintoc(selectid,namefromAwhereidnotin(selectdistinctidfromA))4selectdistinctidfromAwheremax(regedate)这个应该是人想要的结果。第三个有点绕,给你说一下,selectdistinctidfromA这个是查询是没有重复的。把有重复的过滤掉了。之后在用notin是查询我们过滤掉的的那些是重复。这么用的原因是:selectdistinctidfromA这个里面包括了一些没有重复的数据,如果直接用他,把有一条用户的也会删除掉,所以给你过滤一下