sql查询员工入职多少天_sql 查询四舍五入_sql怎么四舍五入(43)

电脑杂谈  发布时间:2017-02-03 23:10:24  来源:网络整理

group by a,b,c) --c小计

union

(select a,'小计' b,'' c,sum(Mavg) Mavg,sum(Mcount) Mcount from

(select a,b,c,avg(s) as Mavg,count(s) Mcount from cq_tt group by a,b,c)

as chen

group by a) --A小计

union

(select a,b,'小计' c,sum(Mavg) Mavg,sum(Mcount) Mcount from

(select a,b,c,avg(s) as Mavg,count(s) Mcount from cq_tt group by a,b,c)

as chen

group by a,b) --B小计

Top

mark.

Top

经典收藏。

Top

值得收藏!

Top

嗯!好!!!

Top

学习了不少,感谢大家做出的贡献

Top

mark

Top

哈哈。。太简单了!哈哈。。

Top

topengdali(大力)

怎么有空到这儿瞧..

WEB这东东可是没什么好玩的耶.偶都要改行了

Top

select a,b,c

from a

where a IN

(select d from b )

Top

结束。

Top

good

Top

mark

Top

oracle:

select 'sql的精妙不在于写的简短,而在于能使得查询效率提高' from dual

Top

说明:子查询(表名1:a 表名2:b)

select a,b,c from a where a IN (select d from b )

这是一个可以优化的sql语句,给a表中的a和b表中的d使用索引,然后改为

select a,b,c from a where exists (select * from b where b.d=a.a)

总结说一点:

1、要合理使用索引

索引是一个重要的构成部分,很都会忽略它,其实索引的根本目的就是

为了提高查询效率。

使用原则如下:

在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则

由优化器自动生成索引。

在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。

在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要

建立索引。比如在雇员表的性别列上只有男与女两个不同值,因此就

无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度

。

如果待排序的列有多个,可以在这些列上建立复合索引(compound index)。

在写sql语句时就必须注意有些写法是会使得无法使用索引的,比如IS NULL

IS NOT NULL,IN ,NOT IN 等。。。

2.避免或简化排序

应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生

输出时,优化器就避免了排序的步骤。以下是一些影响因素:

索引中不包括一个或几个待排序的列;

group by或order by子句中列的次序与索引的次序不一样;

排序的列来自不同的表。

为了避免不必要的排序,就要正确地增建索引,合理地合并表(尽管有时可

能影响表的规范化,但相对于效率的提高是值得的)。如果排序不可避免,那么应

当试图简化它,如缩小排序的列的范围等。

3.消除对大型表行数据的顺序存取


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30385-43.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...