仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3248|回复: 9
打印 上一主题 下一主题

[学习教程] MSSQL网站制作之sqlServer中 分类报表sql技能 ,很有用...

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。server|sqlserver|技能
有表tableA以下:-----------------------------------------------------id,type,countNumber,countDate1A102005-02-0121:23:342B82005-02-0121:23:343C52005-02-0121:23:344B42005-02-0111:23:345C52005-02-0122:23:346A112005-02-0212:23:347B92005-02-0214:23:348C82005-02-0217:23:349A152005-02-0219:23:3410C62005-02-0204:23:3411A72005-02-031:23:3412B112005-02-032:23:3413C122005-02-035:23:34.......................

想要用一条语句天生以下的报表

日期范例A范例B范例C2005-02-011012102005-02-02269142005-02-0371112

我用的是以下的sql语句:

SELECTa.DATEFMT,(selectsum(*)fromtableAwheretype=Aandconvert(char(10),countDate,20)=a.DATEFMT)typeA,(selectsum(*)fromtableAwheretype=Bandconvert(char(10),countDate,20)=a.DATEFMT)typeB,(selectsum(*)fromtableAwheretype=Candconvert(char(10),countDate,20)=a.DATEFMT)typeC

FROM(SELECTconvert(char(10),countDate,20)DATEFMTFROMtableAGROUPBYconvert(char(10),countDate,20))a

可是这条语句在sqlserver上实行起来出格的慢,要好久(20多秒),tabelA中有9万条数据.而我在mySql(表中有2万条数据)上实行就快良多!

厥后在论坛上看到妙手如许写

selectconvert(char(10),countDate,20),typeA=sum(casetypewhenAthenCountNumberelse0end),typeB=sum(casetypewhenBthenCountNumberelse0end),typeC=sum(casetypewhenCthenCountNumberelse0end)FromtableAgroupbyconvert(char(10),countDate,20)

只用1秒不到!唉!凶猛凶猛!
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。
若天明 该用户已被删除
10#
发表于 2015-3-29 07:19:14 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
深爱那片海 该用户已被删除
9#
发表于 2015-3-19 16:25:12 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
admin 该用户已被删除
8#
发表于 2015-3-11 23:39:13 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-5 06:33:42 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
因胸联盟 该用户已被删除
6#
发表于 2015-2-16 13:57:49 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
简单生活 该用户已被删除
5#
发表于 2015-2-6 14:34:18 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
透明 该用户已被删除
地板
发表于 2015-1-30 17:38:54 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-21 11:55:35 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
沙发
发表于 2015-1-18 06:45:16 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 19:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表