教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

求一句SQL地解释,应该很简略。新手提问,分少,请认知。谢谢

 
学院最新推荐文章
PS教程推荐
 
『求一句SQL地解释,应该很简略。新手提问,分少,请认知。谢谢』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
作者:songjinx… 来源:C.S.D.N 点击数: 更新时间:2008-7-24 
SQL code

select sum(ns_Success) as ns_Success, sum(ns_Fail) as ns_Fail from ns_Statistics 

where  ns_TongDao = '123'  ORDER BY ns_Time desc


这样写是错误,提示"列名 'ns_Statistics.ns_Time' 在 ORDER BY 子句中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。"
于是我加上GROUP BY 子句,改成
SQL code

select sum(ns_Success) as ns_Success, sum(ns_Fail) as ns_Fail from ns_Statistics 

where  ns_TongDao = '123' GROUP BY ns_Time   ORDER BY ns_Time desc


这样就正确了,但是我已经用了“ns_TongDao = '123' ” ,为什么非要加个“ GROUP BY ns_Time  ”才能通过呢?我记得加了GROUP BY 子句之后查询速度会变得很慢,我要实现这句话的功能,如何避免使用GROUP BY 子句呢? 万分感谢。

这个问题第1个回答:
加group by 是以后面的列来进行分组.如果不分组,select sum(ns_Success) as ns_Success, sum(ns_Fail) as ns_Fail from ns_Statistics 得到的只是一行数据.一行数据是不用排序的,所以用不着加 order by
如果你要以 ns_Time ,再以ns_Time 就可行了.
这个问题第2个回答:
你就是sum,要order by有什么意义呢?
这个问题第3个回答:
如果你要以 ns_Time 分组,再以ns_Time 排序就可行了.不过不一定会慢多少.至于你是否得加上分组条件,那要看你的需求.
这个问题第4个回答:
4、聚集函数可以出现在允许包含一个group by字句的select列表中,如果select 语句中没有group by字句,并且select列表中至少包含一个聚集函数,则select列表不能包含有任何简单的列。
      例如: select emp_lname,min(emp_no) from employee 为非法语句,因为emp_lname为简单列
    5、聚集函数不能被用于select语句的where子句中。
    6、order by子句中的列不必出现在select列表中,但如果指明了select distinct,则order by列必须出现在select中,且不能引用未列入from子句中的表中的列。


这几个是刚学sql语句时最容易犯的几个错误。一般来说:聚集函数要个group by连用的,如果用了where子句
这个问题第5个回答:
对哦,一行数据我怎么加上order by,我发傻了。。。。。。谢谢大家。给分

】【关闭窗口
·上页:
·下页:
相关文章
 
     数据库类教程 - MsSql综合技巧
普通教程SQL Server 2008升级顾问
普通教程迁移 Reporting Services
普通教程SQL Server 2008升级报表服务器
普通教程SQL Server 2008 升级Reporting
普通教程SQL Server 2008示例之奥地利广
普通教程SQL Server 2008 示例之微软IT部
普通教程SQL Server 2008示例之日立咨询
普通教程SQL Server2008示例之CyberSavv
普通教程SQL Server 2008示例之CareGrou
普通教程微软商业智能技术详细解说
普通教程通过数据说明和生成报表整合企业
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光