CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

【鱼和熊掌不能兼得?】Top x 和 count(*)

楼主i_Ask()2006-03-05 00:27:36 在 MS-SQL Server / 基础类 提问

数据量很大,为了达到高效的检索速度,我选择了select   top   x   fd1,fd2   from   tb   where   ...  
  但是我又想的到所有符合条件的记录,我想加上Count(*),这样一来速度大大降低,怎么办? 问题点数:20、回复次数:13Top

1 楼wgsasd311(自强不息)回复于 2006-03-05 01:08:39 得分 0

作两条语句分开写Top

2 楼bugchen888(臭虫)回复于 2006-03-05 09:21:53 得分 0

不太明白,最好把原始语句贴出来.Top

3 楼scmail81(琳·风の狼(修罗))回复于 2006-03-05 09:25:55 得分 0

create   table   A  
  (  
        fd1   int,  
        fd2   int  
  )  
   
  insert   A   select   1,2  
  insert   A   select   2,1  
  insert   A   select   3,1  
  insert   A   select   4,3  
  insert   A   select   5,4  
  insert   A   select   6,4  
  insert   A   select   7,2  
   
  select   fd1,fd2,   count(*)   as   num   from  
  (select   top     1   WiTh   Ties   *     from   A   order   by   fd2   DESC)   T  
  group   by   fd1,fd2Top

4 楼sxycgxj(云中客)回复于 2006-03-05 09:50:29 得分 0

不错,使用子查询可以实现,不知道楼主在这里所要的count(*),是指的全部还是仅显示出来的记录总和Top

5 楼mary0226(嘉儿)回复于 2006-03-05 10:26:24 得分 0

关注Top

6 楼i_Ask()回复于 2006-03-05 10:52:31 得分 0

我要加的Count(*)是所有满足条件的记录数据。比如我有一张500万记录的表,我用全文索引,我想要速度又想要取出所有符合条件的记录数。Top

7 楼zjcxc(邹建)回复于 2006-03-06 19:23:36 得分 0

那样的需求确实是鱼和熊掌的问题Top

8 楼PacificBlue(侯志斌)回复于 2006-03-06 23:20:29 得分 0

可不可以用[不相关子查询]将符合条件的记录选择出来然后在外层进行Count(*)呢,理论上这样应该大大提高速度的,尤其是当你在子查询中写出很漂亮的查询条件时:DTop

9 楼lzhs(快乐至上)回复于 2006-03-08 16:28:55 得分 0

LS上,[不相关子查询]的效率也不一定就高哦。  
  楼主,我觉得,你确实有点小贪心   :)  
  舍鱼而取熊掌是王道~Top

10 楼i_Ask()回复于 2006-03-10 20:27:27 得分 0

To:各位  
  我是不得已而为之!千万条数据模糊检索   我要速度快,而且要知道所有相关记录的条数!Top

11 楼goldhawk1010(goldhawk)回复于 2006-03-11 08:16:26 得分 0

路过,期待中Top

12 楼tntzbzc(华裔大魔王—抗日要从娃娃抓起)回复于 2006-05-31 21:05:21 得分 0

模糊查询可以换全文检索Top

13 楼ReViSion(和尚)回复于 2006-05-31 21:23:15 得分 0

哈哈,这也行呀,  
  没找出所有的记录之前,怎么能得到行数Top

相关问题

  • 号外:窗体复制困绕中,如何方便快捷,熊掌美女兼得呢?
  • 100分求解:这个世界,鱼和熊掌不可兼得,如果选择心爱的女人,就注定一辈子贫穷,如果放弃,就一定会飞黄腾达,你的选择+理由是?
  • x
  • DataTable.Compute("count(A)","A=X")为什么结果为DBNull?
  • /可怜的熊掌/祝福熊掌早日康复贴2
  • /可怜的熊掌/祝福熊掌早日康复贴4
  • 这样的,二者不能兼得吗?
  • x=x&(x-1)
  • /可怜的熊掌/祝福熊掌早日康复贴3(正身马甲其上阵)
  • 熊掌,熊胆,熊皮大衣来上海啦

关键词

  • 查询
  • 数据
  • top
  • 熊掌
  • 鱼
  • fd
  • 子查询
  • 记录
  • insert a select
  • 速度

得分解答快速导航

  • 帖主:i_Ask

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo