工作总结

来源:互联网 发布:mac pro 发热严重 编辑:程序博客网 时间:2024/06/12 01:34

1.oracle 系统时间可直接用sysdate

2.自增字段可在oracle中设置序列

(1)首先建立一个序列(就是每次查询会自动增加值的绝不重复的对象,比如每次加1或每次加10)。语法:CREATE SEQUENCE 序列名[INCREMENT BY n]     --每次加几[START WITH n]         --序列从几开始[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --最小值、最大值的限制比如CREATE SEQUENCE s_test start with 1 increment by 1;   --就是建立了额一个从1开始每次加1的序列。访问序列时,用  序列名称.nextval的语法。

3.前后台传递过程中中文出现乱码。。在tomcat /conf下面的server.xml中

 URIEncoding="utf-8"<Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443" URIEncoding="utf-8"/> 加上    URIEncoding="utf-8"

4.ligerui grid 分行。截断值配置页面(规则判断) targetconn_update.jsp 

解决思路:
从css下手,然后把组成grid的2个table的tr高度统一,这样就能对齐了

  1. //grid的这个事件,一般来说对表格的二次加工,都是在这个事件里去处理
  2.                 onAfterShowData:function()
  3.                 {                                
  4.                     $(".l-grid-row-cell-inner").css("height","auto"); //单元格高度自动化,撑开
  5.                     var i=0;
  6.                     $("tr",".l-grid2","#maingrid").each(function ()
  7.                     {                                            
  8.                         $($("tr",".l-grid1","#maingrid")[i]).css("height",$(this).height()); //2个表格的tr高度一致
  9.                         i++;                        
  10.                     });                                            
  11.                 },

5.本地网络方位方式:\\192.168.16.251\d$

6.select id from v_szcsesc group by id having count(id)>1   选择字段中相同值的数据

查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1)

7.

Mysql按条件计数的几种方法

问题描述

为使讨论简单易懂,我将问题稍作简化,去掉诸多的背景。

从前有一个皇帝,他有50个妃子,这些妃子很没有天理的给他生了100,000个儿子,于是,皇帝很苦恼,海量的儿子很难管理,而且,他想知道每个妃子给他生了多少个儿子,从而论功行赏,这很难办。于是,皇帝请了一个程序员帮他编了一个程序,用数据库来存储所有的儿子的信息,这样就可以用程序来统计和管理啦。

数据库的结构如下:

id皇子的唯一编号mother皇子母亲的唯一编号

皇帝把妃子分成了两个等级,天宫娘娘(编号小于25)和地宫娘娘(编号大于等于25),他想知道天宫娘娘们和地宫娘娘们的生育能力孰强孰弱。于是,程序员开始写SQL Query了。

方法1:使用GROUP BY

SQL Query

  1. SELECTCOUNT(*)FROM`prince`GROUPBY`mother` >24;

执行结果

count(*)5002949971

在100,000行数据上的运行时间:0.0335 秒

分析

这种GROUP BY方法的最大问题在于:无法区分所得到的结果。这两个数字哪一个是天宫娘娘们所生的皇子数,哪一个是地宫娘娘们所生的皇子数呢?不知道。所以,尽管它统计出了总数,但是没有什么意义。

因此,为了区分统计结果,必须要把条件 mother > 24 也作为一个字段在结果集中作为一个字段体现出来,修改后的sql如下:

  1. SELECTCOUNT(*)AS`number`,`mother` >24 AS`type`FROM`prince`GROUPBY`mother` >24;

执行结果

number  type50029   049971   1

条件表达式作为字段时,该字段的值就是该条件表达式的值,因此,对应我们的例子,type = 1 也就是表示 mother > 24 的值为1,因此,第二行中的数字代表地宫娘娘们所生的皇子数。

经过修改后,我们看出,天宫娘娘们略胜一筹。

优缺点

缺点是显而易见的,由于使用了条件表达式作为分组依据,它只能做二元的划分,对于要分成多类进行统计的情况不能够胜任。比如要分别统计1~10号、11~24号,25号~50号妃子的产子数,就无法实现了。

另外,由于使用了GROUP BY,因此涉及到排序,执行时间上要更长。

我暂时没有发现这种方法的优点。

方法2:使用嵌套的SELECT

使用嵌套的SELECT也可以达到目的,在每个SELECT子句中统计一个条件下的数据,然后用一个主SELECT把这些统计数据整合起来。

SQL Query

  1. SELECT 
  2.     ( SELECTCOUNT( *) FROM`prince`WHERE`mother` >24)AS`digong`,
  3.     ( SELECTCOUNT( *) FROM`prince`WHERE`mother` <=24)AS`tiangong`

执行结果

digong  tiangong49971   50029

在100,000行数据上的运行时间:0.0216 秒

分析

这种嵌套SELECT的方法非常直观,就是分别统计各个条件下的数值,最后进行汇总,通俗易懂,跟自然语言没啥区别了。

优缺点

优点就是直观,而且速度也比GROUP BY要快。虽然是3条SELECT语句,看起来比GROUP BY的方案多了2条语句,但是它不涉及到排序,这就节省了很多时间。

缺点可能就是语句稍多,对语句数量有洁癖的同学可能会比较不舒服。

方法3:使用CASE WHEN

CASE WHEN语句的功能很强大,可以定义灵活的查询条件,很适合进行分类统计。

SQL Query

  1. SELECT 
  2.     COUNT( CASEWHEN`mother` >24THEN1ELSENULLEND)AS`digong`,
  3.     COUNT( CASEWHEN`mother` <=24THEN1ELSENULLEND)AS`tiangong`
  4. FROM prince

执行结果

digong  tiangong49971   50029

在100,000行数据上的运行时间:0.02365825 秒

分析

此方法的关键在于

  1. COUNT(CASEWHEN`mother` >24THEN1ELSENULLEND)

这里的COUNT和CASE WHEN联合使用,做到了分类计数。先使用CASE WHEN,当满足条件时,将字段值设置为 1, 不满足条件时,将字段值设置为NULL,接着COUNT函数仅对非NULL字段进行计数,于是,问题解决。

优缺点

优点嘛,此方法也不涉及到排序,因此运行时间上与方法2相当,SELECT语句减少到了 1 条。

缺点就是语句比较长,对语句长度有洁癖的同学可能会比较不舒服。

总结

对于确定分类的按条件计数,可以尽量不用GROUP BY,从而避免排序动作,加速Query的执行。

如果需要根据某个字段的值进行分类,而该字段的值是可变的,比如皇帝要统计每一个妃子的产子数,而他可能不停的再娶很多妃子,这种情况下,使用方法2和方法3就不太灵光了,还是使用一个GROUP BY来得简单便捷。

原文地址:http://www.zhiyan.info/2011/02/24/mysql-conditional-count.html

本文短网址:http://goo.gl/344qn



5.16:

jquery选择器:$('.child', $('#parent'))   选择某个范围内部分元素

6.04

replace 替换全部数据

scxx_rowdata[i].EXPERIMENTITEM.replace(/=/g,'*') (替换所有=号)
9.17

不进行循环,快速打印数组str[]的方法:

System.out.println(Arrays.toString(str));

 


原创粉丝点击