sql查询中如何用group by查询出完整的一行记录?
table有如下字段:idnamenicknameemailschooluploadtime我现在要查的是每个school下最大的uploadtime数据要求查出该数据对...
table有如下字段:id name nickname email school uploadtime
我现在要查的是每个school下最大的uploadtime数据 要求查出该数据对应的完整记录
我用select school,max(uploadtime) from table group by school只能查出两列字段 我现在要查询这两列字段对应的完整记录 就是要把id name nickname email都查出来 而且id name nickname email不作为分组条件
该怎么查?我如果用select id,name,nickname,email,school,max(uploadtime) from table group by school的话会查出错误的id name nickname email 信息就是把错误的id name nickname email和max(uploadtime)相结合 展开
我现在要查的是每个school下最大的uploadtime数据 要求查出该数据对应的完整记录
我用select school,max(uploadtime) from table group by school只能查出两列字段 我现在要查询这两列字段对应的完整记录 就是要把id name nickname email都查出来 而且id name nickname email不作为分组条件
该怎么查?我如果用select id,name,nickname,email,school,max(uploadtime) from table group by school的话会查出错误的id name nickname email 信息就是把错误的id name nickname email和max(uploadtime)相结合 展开
展开全部
selct * from table where uploadtime=max(uploadtime) group by school
这条语句能把uploadtime最大的那一条数据查出来
select * 就是查出所有的数据,你再用where=* 过滤指定一下你要查数据的条件。
关于你的语句{
select id,name,nickname,email,school,max(uploadtime) from table group by school }
这段代码只是随意查了个id,name等信息,但是不是max(uploadtime)对应的,你改成
{select id,name,nickname,email,school,uploadtime where uploadtime=max(uploadtime) from table group by school }
不知道你问的是不是这个意思
这条语句能把uploadtime最大的那一条数据查出来
select * 就是查出所有的数据,你再用where=* 过滤指定一下你要查数据的条件。
关于你的语句{
select id,name,nickname,email,school,max(uploadtime) from table group by school }
这段代码只是随意查了个id,name等信息,但是不是max(uploadtime)对应的,你改成
{select id,name,nickname,email,school,uploadtime where uploadtime=max(uploadtime) from table group by school }
不知道你问的是不是这个意思
更多追问追答
追问
Invalid use of group function错误
如果多个school下都有同样的uploadtime且其中的一些uploadtime并不是该school分组下最大的该怎么办
追答
select id,name,nickname,email,school,uploadtime from table where uploadtime in (select max(uploadtime) from table group by school)
上面写错了,误导你了不好意思
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询