| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 952 人关注过本帖
标题:请问一下这个SQL语句
只看楼主 加入收藏
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:3 
请问一下这个SQL语句
select count(id) as count1,name from q1 where (select count(id) from q1 as m where m.name=q1.name)>2 group by name order by count(id) desc
我看不太懂这个SQL,这么多个where,请大家会的帮我解析下,谢谢
搜索更多相关主题的帖子: SQL 语句 name count select 
2008-07-25 10:47
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
select count(id) as count1,name from q1 where (select count(id) from q1
查询 对id进行统计起别名count1和name字段在表q1条件是q1表的id统计的name字段等于q1表的name字段并且>2按name分组并按id降序排列
as m where m.name=q1.name)>2 group by name order by count(id) desc
这里用了子查询
不过这个SQL语句个人是越看越别扭,同一个表做子查询是一个问题,一般子查询都是不同的表但有关系的表进行子查询。
问题二在于m.name=q1.name这个条件好像是句废代码,因为本身子查询里的表是q1外面的那个表也是q1都是同一个表name肯定相等,为何还要做条件来限制?
另一个问题是count(id) desc这种写法个人是极为少见,count是统计函数统计后只有一个结果对这一个结果进行排序?没有必要吧?
2008-07-25 11:05
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
这应该是要查询name重复的记录吧
也就是Access这种数据库才用写这么复杂
2008-07-25 11:08
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
明白一些了!看到别人程序中的SQL语句,看不太明白,所以问一下的! 谢谢!

学习编程www.
2008-07-25 11:14
快速回复:请问一下这个SQL语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011412 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved