﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-技术改变生活 信念改变命运-随笔分类-数据库</title><link>http://www.blogjava.net/BJswing/category/39989.html</link><description>网站开发 java</description><language>zh-cn</language><lastBuildDate>Tue, 23 Jun 2009 19:53:58 GMT</lastBuildDate><pubDate>Tue, 23 Jun 2009 19:53:58 GMT</pubDate><ttl>60</ttl><item><title>mysql中关键字like avg的用法小议</title><link>http://www.blogjava.net/BJswing/archive/2009/06/23/283658.html</link><dc:creator>飘摇</dc:creator><author>飘摇</author><pubDate>Mon, 22 Jun 2009 17:31:00 GMT</pubDate><guid>http://www.blogjava.net/BJswing/archive/2009/06/23/283658.html</guid><wfw:comment>http://www.blogjava.net/BJswing/comments/283658.html</wfw:comment><comments>http://www.blogjava.net/BJswing/archive/2009/06/23/283658.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BJswing/comments/commentRss/283658.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BJswing/services/trackbacks/283658.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 模糊查询like 平均值avg&nbsp;&nbsp;<a href='http://www.blogjava.net/BJswing/archive/2009/06/23/283658.html'>阅读全文</a><img src ="http://www.blogjava.net/BJswing/aggbug/283658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BJswing/" target="_blank">飘摇</a> 2009-06-23 01:31 <a href="http://www.blogjava.net/BJswing/archive/2009/06/23/283658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 存贮过程了解</title><link>http://www.blogjava.net/BJswing/archive/2009/06/03/279812.html</link><dc:creator>飘摇</dc:creator><author>飘摇</author><pubDate>Wed, 03 Jun 2009 06:53:00 GMT</pubDate><guid>http://www.blogjava.net/BJswing/archive/2009/06/03/279812.html</guid><wfw:comment>http://www.blogjava.net/BJswing/comments/279812.html</wfw:comment><comments>http://www.blogjava.net/BJswing/archive/2009/06/03/279812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BJswing/comments/commentRss/279812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BJswing/services/trackbacks/279812.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: oracle 存储过程 是什么？ 如何建？应用中注意的问题？&nbsp;&nbsp;<a href='http://www.blogjava.net/BJswing/archive/2009/06/03/279812.html'>阅读全文</a><img src ="http://www.blogjava.net/BJswing/aggbug/279812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BJswing/" target="_blank">飘摇</a> 2009-06-03 14:53 <a href="http://www.blogjava.net/BJswing/archive/2009/06/03/279812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一道mysql分组统计问题</title><link>http://www.blogjava.net/BJswing/archive/2009/06/03/279809.html</link><dc:creator>飘摇</dc:creator><author>飘摇</author><pubDate>Wed, 03 Jun 2009 06:42:00 GMT</pubDate><guid>http://www.blogjava.net/BJswing/archive/2009/06/03/279809.html</guid><wfw:comment>http://www.blogjava.net/BJswing/comments/279809.html</wfw:comment><comments>http://www.blogjava.net/BJswing/archive/2009/06/03/279809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BJswing/comments/commentRss/279809.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BJswing/services/trackbacks/279809.html</trackback:ping><description><![CDATA[&nbsp;试题要求：<br />
&nbsp;&nbsp;
<p><font style="background-color: #edf2f9">有一个表&nbsp;&nbsp; Table&nbsp;&nbsp;&nbsp;Test&nbsp;&nbsp; 结构如下&nbsp;&nbsp; :<br />
&nbsp; 姓名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 颜色1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 颜色2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 评语&nbsp;&nbsp; <br />
&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; commint&nbsp;&nbsp; <br />
&nbsp; a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好&nbsp;&nbsp; <br />
&nbsp; b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不好&nbsp;&nbsp; <br />
&nbsp; a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般&nbsp;&nbsp; <br />
&nbsp; c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss&nbsp;&nbsp; <br />
&nbsp; a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aa&nbsp;&nbsp; <br />
&nbsp; b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb&nbsp;&nbsp; <br />
&nbsp; a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cc&nbsp;&nbsp; <br />
&nbsp; 按照如下规则进行统计：&nbsp;&nbsp; <br />
&nbsp; 按姓名分组求平均值，如果值为-1就不统计，评语累计&nbsp;&nbsp; </font></p>
<p><font style="background-color: #edf2f9">&nbsp; 统计后结果如下：&nbsp;&nbsp; <br />
&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; commint&nbsp;&nbsp; <br />
&nbsp; a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好,一般,aa,cc&nbsp;&nbsp; <br />
&nbsp; b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不好,bb&nbsp;&nbsp; <br />
&nbsp; c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss <br />
-----------------------------------------------------------------------------------------------------------------------------------------------------<br />
分析表结构和规则，可以得到如下信息：<br />
首先按name 分组(group by **)，计算两列的平均值(想到的函数avg())，去除值为-1的列，合并相同列的字段值(想到 group_concat(name))，<br />
&nbsp;但是写时候avg()不可以，有条件应该想到 case when then else end来进行判断，<br />
&nbsp;计算平均值可以这样算：用分子/分母的方法，<br />
&nbsp;分子：所有列的和如果为-1则为0 sum(case color1 when -1 then 0 else color1 end)<br />
&nbsp;分母：所有的列数和,如果为-1则为0，反之为1 sum(case color1 when -1 then 0 else 1 end),<br />
这有点像加权平均数，<br />
&nbsp; select&nbsp; name ,sum(case color1 when -1 then 0 else color1 end)/sum(case color1 when -1 then 0 else 1 end) as color1,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum(case color2 when -1 then 0 else color2 end )/sum(case color2 when -1 then 0 else 1 end ) as color2,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; group_concat(commint) from Test group by name;<br />
-----------------------------------------------------------------------------------------------------------------<br />
group_concat()用法小结：<br />
&nbsp; group_concate(name)&nbsp; 对该列进行合并<br />
&nbsp; group_concate(distinct name) 去除重复元素<br />
&nbsp; group_concate( name separator ':')按separator ':' ：格式进行分割<br />
</font></p>
<img src ="http://www.blogjava.net/BJswing/aggbug/279809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BJswing/" target="_blank">飘摇</a> 2009-06-03 14:42 <a href="http://www.blogjava.net/BJswing/archive/2009/06/03/279809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>