ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:26.50KB ,
资源ID:9754416      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9754416.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(五招轻松搞定SQL-Server数据汇总.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

五招轻松搞定SQL-Server数据汇总.doc

1、   有些时候你想让SQL Server 返回一个聚集结果集合,而不是一个详细的结果集。SQL Server的GROUPBY子句,为你提供了一种聚合SQL Server数据的方式。GROUPBY子句允许你在一列或多列数据甚至是表达式上进行分组操作,在这篇文章中,我将讨论如何使用GROUPBY子句来汇总数据。   使用单独列分组   GROUP BY子句通过设置分组条件来汇总数据,在第一个例子中,我在数据库AdventureWork2012中的表 Sales.SalesOrderDetail.中的一列上进行数据分组操作。这个例子以及其他例子都使用数据库AdventureWorks201

2、2,如果你想使用它运行我的代码,你可以点击下载。   下面是第一个示例的源码,在CarrierTrackingNumber列上使用group by子句进行数据分组操作   USE AdventureWorks2012;   GO   SELECT CarrierTrackingNumber   ,SUM(LineTotal) AS SummarizedLineTotal   FROM AdventureWorks2012.Sales.SalesOrderDetail   GROUP BY CarrierTrackingNumber;   在我运行这段代码后,会得到3

3、807个记录,下面是这个庞大的结果集中前五个数值:   CarrierTrackingNumber LineTotal   -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --   6E46-440A-B5 2133.170700   B501-448E-96 4085.409800   8551-4CDF-A1 72616.524200   B65C-4867-86 714.704300   99CE-4ADA-B1 16185.429200

4、  在上面的示例中,我使用group by子句选择哪些列作为聚集dventureWorks2012.Sales.SalesOrderDetai数据表数据的条件,在例子中,我使用CarrierTrackingNumber汇总数据,当你进行数据分组时,只有在group By 子句中出现的列才在selection 列表中有效。在我的示例中,我使用聚集函数SUM计算LineTotal,为了使用方便,我为它设置了别名SummarizedLineTotal。   如果我想获得CarrierTrackingNumber 满足特定条件下的聚集集合,那我可以在Where子句中对查询进行限制,就像我下面做的这样

5、   USE AdventureWorks2012;   GO   SELECT CarrierTrackingNumber   ,SUM(LineTotal) AS SummarizedLineTotal   FROM AdventureWorks2012.Sales.SalesOrderDetail   WHERE CarrierTrackingNumber = '48F2-4141-9A'   GROUP BY CarrierTrackingNumber;   这里我在原始查询基础上在where子句中加上了一条限制,我设置了我的查询只返回CarrierTr

6、ackingNumber 等于一个特定值的结果。运行这段代码后,我会得到记录中CarrierTrackingNumber 等于48F2-4141-9A的行的数量。Where子句的过滤行为在数据被聚集之前就已生效。   通过多列来分组   有时候你可能需要使用多列来进行数据分组,下面是我使用多列进行分组的示例代码   SELECT D.ProductID   , H.OrderDate   , SUM(LineTotal) AS SummarizedLineTotal   FROM AdventureWorks2012.Sales.SalesOrderDetail D   

7、JOIN AdventureWorks2012.Sales.SalesOrderHeader H   ON D.SalesOrderId = H.SalesOrderID   GROUP BY ProductID, OrderDate;   查询返回26878行数据,这是上面查询返回的部分结果:   ProductID OrderDate LineTotal   -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --   714 2008-05-21 00

8、00:00.000 99.980000   859 2007-11-03 00:00:00.000 48.980000   923 2007-11-23 00:00:00.000 14.970000   712 2007-12-22 00:00:00.000 62.930000   795 2007-10-14 00:00:00.000 2443.350000   950 2007-07-01 00:00:00.000 2462.304000   795 2007-11-06 00:00:00.000 2443.350000   877 2007-11-19 00

9、00:00.000 15.900000   713 2007-10-01 00:00:00.000 99.980000   860 2008-05-31 00:00:00.000 48.980000   961 2008-05-01 00:00:00.000 36242.120880   在上面的示例程序中,Group by 子句中用到了ProductID列与OrderDate列,SQL Server基于ProductID和OrderDate二者组合的唯一性,返回LineTotal的值,并为其设置别名SummarizedLineTotal。如果你查看程序的输出,你会发现SQL

10、 Server 对数据进行分组后,返回的结果并没有特定的顺序,如果你需要返回结果按照一定顺序排序,你需要使用ORDER BY 子句,就像我在下面代码中展示的那样。   SELECT D.ProductID   , H.OrderDate   , SUM(LineTotal) AS SummarizedLineTotal   FROM AdventureWorks2012.Sales.SalesOrderDetail D   JOIN AdventureWorks2012.Sales.SalesOrderHeader H   ON D.SalesOrderId = H.Sa

11、lesOrderID   GROUP BY ProductID, OrderDate   ORDER BY SummarizedLineTotal DESC;   在上面的代码中,我按照SummorizedLineTotal降序对结果集进行排序,此列的值通过Group BY子句分组后对LineTotal使用聚合函数Sum得到。我对结果按照SummorizedLineTotal 的值降序排列。如果你运行此程序,你可以得出LineTotal 数量最高的ProductID和OrderDate。   对没有任何值的数据进行分组   有时候你会需要对一些记录中包含空值的数据进行分组操作。

12、当你在SQL Server 执行此类操作时,它会自动假设所有NULL值相等。让我看一下下面的示例程序   CREATE TABLE NullGroupBy (OrderDate date, Amount Int);   INSERT INTO NullGroupBy values (NULL,100),   ('10-30-2014',100),   ('10-31-2014',100),   (NULL,100);   SELECT OrderDate, SUM(Amount) as TotalAmount   FROM NullGroupBy   GROUP

13、BY OrderDate;   DROP TABLE NullGroupBy;   When I run this code I get the following output:   OrderDate TotalAmount   -- -- -- -- -- -- -- -- -- -- -   NULL 200   2014-10-30 100   2014-10-31 100   在上面的程序中,我首先创建并填充了一个NullGroupBy表.在这个表中,我放置了四个不同的行,第一行和最后一行的orderDate列值为NULL,其他两列的orderDat

14、e值不同。从上面的输出结果可以看到,SQL Server 在分组时将OrderDate为NULL的两行聚集为一行处理。   在Group BY 子句中使用表达式   有时你需要在Group by子句中使用表达式,而不是具体的列。SQL Server允许你在Group By子句中指定一个表达式,就像下面的代码中所示:   SELECT CONVERT(CHAR(7),H.OrderDate,120) AS [YYYY-MM]   , SUM(LineTotal) AS SummarizedLineTotal   FROM AdventureWorks2012.Sales.Sales

15、OrderDetail D   JOIN AdventureWorks2012.Sales.SalesOrderHeader H   ON D.SalesOrderId = H.SalesOrderID   GROUP BY CONVERT(CHAR(7),H.OrderDate,120)   ORDER BY SummarizedLineTotal DESC;   上述代码使用OrderDate 列中的年月数据进行分组,通过使用表达式CONVERT(CHAR(7),H.OrderDate,120) ,我告诉SQL服务器截取OrderDate ODBC标准日期格式的前七个字

16、符,也就是OrderDate yyyy-mm部分。基于这个表达式,我可以找出特定年月的total SummarizeLineTotal值,在Group By子句中使用表达式,以及对LineTotal值排序,我可以找出哪一年哪一个月的SummarizeLineTotal最大或最小。   使用HAVING子句过滤数据   Having 是另外一个能与Group BY 子句结合使用的重要子句,使用Having 子句,你可以过滤掉不符合Having子句所接表达式的数据行,当我在其上使用where子句时,在聚集之前就会产生过滤行为。Having 子句允许你基于某些标准过滤聚合行。想要更清楚地了解Ha

17、ving子句,请参考下面代码:   SELECT D.ProductID   , H.OrderDate   , SUM(LineTotal) AS SummarizedLineTotal   FROM AdventureWorks2012.Sales.SalesOrderDetail D   JOIN AdventureWorks2012.Sales.SalesOrderHeader H   ON D.SalesOrderId = H.SalesOrderID   GROUP BY ProductID, OrderDate   HAVING SUM(LineTo

18、tal) > 200000   ORDER BY SummarizedLineTotal DESC;   在上面的代码中Having子句限制条件是SUM(LineTotal) > 200000。这个having子句保证最终结果中LineTotal的聚合值(SummarizedLineTotal)大于200000.通过使用having子句,我的查询只返回一行数据,其SummarizedLineTotal大于200000.having子句允许SQL Server 只返回聚合结果满足Having子句限制的条件的数据行。   总结   许多应用要求数据在展示之前要经过一定的汇总操作,GROUP BY子句就是SQL Server提供的汇总数据的机制。GROUPBY子句允许你使用HAVING子句对汇总数据进行特定的过滤。希望下次你需要汇总一些数据的时候,你可以更加容易的达到目的。   更多信息请查看IT技术专栏   

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服