MSSQL编程:分组统计办法:用Group By
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。分组|统计原贴:http://community.csdn.net/Expert/topic/3739/3739565.xml?temp=.7632105
表中三个字段
|---------------------------------------------|
|产物数目单价|
|=============================================|
|A320|
|A425|
|A230|
|B685|
|B396|
|---------------------------------------------|
如今想失掉以下了局:
产物均匀价
A******
B******
注重:一种商品一个均匀价
均匀数算法:
A的均匀价数=(3*20)+(4*25)+(2*30)/(3+4+2),B的均匀值也如A。
求该SQL语句。
createtable表(产物varchar(5),数目int,单价decimal(4,2))
insert表selectA,3,20
unionallselectA,4,25
unionallselectA,2,30
unionallselectB,6,85
unionallselectB,3,96
select产物,cast(sum(isnull(单价,0)*isnull(数目,0))/sum(数目)asdecimal(4,2))as均匀值from表groupby产物
droptable表
--了局:
(所影响的行数为5行)
产物均匀值
-----------
A24.44
B88.67
(所影响的行数为2行)
提供用于管理、检查、优化数据库操作的管理工具。 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 可以动态传入参数,省却了动态SQL的拼写。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
页:
[1]