Office中国论坛/Access中国论坛

标题: 关于排序问题,真的不指导问题在哪,请帮我 [打印本页]

作者: ycljh99    时间: 2007-3-20 00:25
标题: 关于排序问题,真的不指导问题在哪,请帮我
我想查询MO_NAME字段每天话务量排前三位的各项平均值,可是查询后的结果是有的没查到,有的查不全,不知道是什么原因,请各位高手指点一二.

1[attach]23633[/attach]

作者: sgrshh29    时间: 2007-3-20 00:49
这个样子行不行?[attach]23634[/attach]

作者: sgrshh29    时间: 2007-3-20 01:09
如果想只用一个查询:

SELECT mo_name, channel, [date], Avg(a.话务量) AS 平均话务量, avg(a.掉话率) AS 平均掉话率
FROM 123 AS a
WHERE a.话务量 in (SELECT TOP 3 话务量 FROM 123 as b where a.mo_name=b.mo_name and a.date=b.date group by b.mo_name,b.date,b.话务量 ORDER BY b.话务量 DESC)
GROUP BY a.mo_name, a.channel, a.date;


[此贴子已经被作者于2007-3-19 17:13:25编辑过]


作者: ycljh99    时间: 2007-3-20 02:11
多谢SPRSHH!非常好.

我喜欢一次性查询出来的语句,只是对它读起来不太理解,什么a呀,b啊.你能帮我解释一下吗,以便我以后碰到类似的东西可以自己解决.

我发现这里真的不错,能学到不少东西,感谢所有人.
作者: ycljh99    时间: 2007-3-20 18:04
标题: 晕,
又有状况了。为什么只是多了些记录就执行不下去了呢,才1万多条不多啊,要是几十万那更无法执行了。谁帮我看下啊。123能查询,1234就不能查询了。[attach]23644[/attach]

作者: ycljh99    时间: 2007-3-21 02:08
标题:
以上的查询1234可以查,就是要10来分钟,太慢了,是不是我的语句不好啊,谁能帮我改改.

我的机子配置还可以的P2.8G,512内存.
作者: nxjswt    时间: 2007-3-21 04:25
date字段的属性为时间,索引没有建立,另外请检查你的数据库的关系,最好使用工具--分析--性能!

[attach]23649[/attach]


[此贴子已经被作者于2007-3-20 20:27:15编辑过]


作者: ycljh99    时间: 2007-3-21 04:37
标题: 是建立DATE字段的索引吗?
是建立DATE字段的索引吗?我明天分析一下,谢谢你
作者: ycljh99    时间: 2007-3-21 16:56
标题: 确实有效
建立索引之后只要1分多就能出结果了,谢谢!

只是上面表1234是我通过一个查询得出来的,假如我要通过这个查询直接建立查询1234,速度就不行了,不知道这样该如何提高效率.
作者: nxjswt    时间: 2007-3-23 03:08
以下是引用ycljh99在2007-3-21 8:56:00的发言:


建立索引之后只要1分多就能出结果了,谢谢!

只是上面表1234是我通过一个查询得出来的,假如我要通过这个查询直接建立查询1234,速度就不行了,不知道这样该如何提高效率.



分步实施是

一个方法




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3