如何查询一张表中某一出现次数字段最多的记录?在线等

xtdenglei 2008-03-26 08:50:59
我现在有一张表,字段如下
id zlid regname register addtime

我想要查找这张表中,zlid 最多的5个zlid记录,asp语句应该怎么写?
...全文
764 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtdenglei 2008-03-27
  • 打赏
  • 举报
回复
分组查询<Group by子句>
select 字段名列表 from 表名 [where 条件表达式] group by 字段名
select 字段名列表 from 表名 [where 条件表达式] group by 字段名 Having <筛选表达式>
select cno,avg(degree) as chengji from score group by cno
select cno,avg(degree) as chengji from score group by cno Having avg(degree)>80

<字段名列表中包含聚合函数时,则计算每组的汇总值。
如果使用Group by子句,字段名列表中任一非聚合表达式内的所有列都必需包含在
Group by列表中,或者Group by表达式必须与选择列表表达式完全匹配。>
筛选查询<Having子句>
<Having子句对Group by子句分组后的结果进行筛选,看其是否满足条件。
故此Having只能配合group by子句使用。>

当Where子句,Group by子句,Having子句同时使用时,其顺序如下:
①执行Where子句,从表中选取行;
②由Group By分组;
③执行Having子句选取满足的分组条件。


聚合函数:使用聚合函数,实现数据统计。
AVG:计算平均数
Count(*):统计查询输出的记录总数
Count():统计指定列中选择的记录总数
Max:最大值
Min:最小值
Sum:计算总和
Stdev:计算统计标准偏差
Var:统计方差


谢谢上面两位了,已经在百度找到语句的解释了,帖过来让还有不懂的人看,结帖。
hookee 2008-03-27
  • 打赏
  • 举报
回复
就是按zlid进行分组查询,并根据聚集函数count的值排序
xtdenglei 2008-03-27
  • 打赏
  • 举报
回复
4楼的真是高手,谢谢谢了,
不过能帮我解释一下这句语句的执行过程吗?我还有点没有搞懂。
xtdenglei 2008-03-27
  • 打赏
  • 举报
回复
比如说我这张表里zlid=3的记录有5条,zlid=6的记录有10条,zlid=14的记录有50条,我现在要查找zlid在表中出现次数最多的两个zlid对应的zlid的值,这个时候zlid的值就应该是14 6 代码应该怎么写

我知道自己想要的结果,可以要我写出来真的有点麻烦,请大家多多原谅
hookee 2008-03-27
  • 打赏
  • 举报
回复
SELECT TOP 5 zlid, COUNT(zlid) FROM tbl GROUP BY zlid ORDER BY COUNT(zlid) DESC
若白师妹 2008-03-27
  • 打赏
  • 举报
回复
是你的表达有问题还是我理解有问题?
SELECT top 5 zlid, COUNT(zlid) FROM test GROUP BY id ORDER BY COUNT(zlid) DESC
xtdenglei 2008-03-27
  • 打赏
  • 举报
回复
这不是我要的效果,
我想要达到的效果是比较zlid出现的次数,按zlid出现次数取最前面几个zlid的值(zlid的值不相同)
麻烦那位大哥再帮帮忙。
hookee 2008-03-26
  • 打赏
  • 举报
回复
SELECT top 5 id, COUNT(zlid) FROM test GROUP BY id ORDER BY COUNT(zlid) DESC

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧