SQL语句详细说明[部分]
<p><strong><font>SQL</font></strong> <strong><font face="宋体 "><font>语句教程</font></font></strong> <strong><font>(11) Group By</font></strong></p>
<p align="left">
<font face="宋体 "><font>我们现在回到函数上。记得我们用</font></font><br><font>SUM</font><br><font face="宋体 "><font>这个指令来算出所有的</font></font><font> Sales (</font><font face="宋体 "><font>营业额</font></font><font>)</font><font face="宋体 "><font>吧!如果我们的需求变成是要算出每一间店</font></font><font> (store_name) </font><font face="宋体 "><font>的营业额</font></font><font> (sales)</font><font face="宋体 "><font>,那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于</font></font><font> store_name </font><font face="宋体 "><font>及</font></font><font> Sales </font><font face="宋体 "><font>这两个栏位都要选出。第二,我们需要确认所有的</font></font><font> sales </font><font face="宋体 "><font>都要依照各个</font></font><font> store_name </font><font face="宋体 "><font>来分开算。这个语法为:</font></font><br><font>SELECT "</font><font face="宋体 "><font>栏位</font></font><font>1", SUM("</font><font face="宋体 "><font>栏位</font></font><font>2") FROM "</font><font face="宋体 "><font>表格名</font></font><font>" GROUP BY "</font><font face="宋体 "><font>栏位</font></font><font>1"</font><br><font face="宋体 "><font>在我们的示范上</font></font><br><font>Store_Information </font><font face="宋体 "><font>表格</font></font></p>
<table bgcolor="#999999" cellspacing="0" class="t_table"><tbody>
<tr>
<td width="93">
<p align="center">
<font>store_name</font></p>
</td>
<td width="63">
<p align="center">
<font>sales</font></p>
</td>
<td width="103">
<p align="center">
<font>date</font></p>
</td>
</tr>
<tr>
<td>
<p align="left">
<font>Los Angeles</font></p>
</td>
<td>
<p align="center">
<font>$1500</font></p>
</td>
<td>
<p align="center">
<font>jan-05-1999</font></p>
</td>
</tr>
<tr>
<td>
<p align="left">
<font>San Francisco</font></p>
</td>
<td>
<p align="center">
<font>$300</font></p>
</td>
<td>
<p align="center">
<font>jan-08-1999</font></p>
</td>
</tr>
<tr>
<td>
<p align="left">
<font>Boston</font></p>
</td>
<td>
<p align="center">
<font>$700</font></p>
</td>
<td>
<p align="center">
<font>jan-08-1999</font></p>
</td>
</tr>
</tbody></table>
<p>
<br><font face="宋体 "><font>我们就打入</font></font><br><font>SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name</font><br><strong><font face="宋体 "><font>结果</font></font></strong> <strong><font>:</font></strong><br><font><u>store_name</u> <u>SUM(Sales)</u><br>
Los Angeles $1800<br>
San Diego $250<br>
Boston $700 </font><br><br><font face="宋体 "><font>当我们选不只一个栏位,且其中至少一个栏位有包含函数的运用时,我们就需要用到</font></font><font> GROUP BY </font><font face="宋体 "><font>这个指令。在这个情况下,我们需要确定我们有</font></font><font> GROUP BY </font><font face="宋体 "><font>所有其他的栏位。换句话说,除了有包括函数的栏位外,我们都需要将其放在</font></font><font> GROUP BY </font><font face="宋体 "><font>的子句中。</font></font><br><br><strong><font>SQL</font></strong> <strong><font face="宋体 "><font>语句教程</font></font></strong> <strong><font>(12) HAVING</font></strong></p>
<p align="left">
<font face="宋体 "><font>那我们<span>如何对函数产生的值来设定条件呢?</span>举例来说,我们可能只需要知道哪些店的营业额有超过</font></font><font> $1,500</font><font face="宋体 "><font>。在这个情况下,我们不能使用</font></font><br><font>WHERE</font><br><font face="宋体 "><font>的指令。那要怎么办呢?很幸运地,</font></font><font>SQL </font><font face="宋体 "><font>有提供一个</font></font><br><font>HAVING</font><br><font face="宋体 "><font>的指令,而我们就可以用这个指令来达到这个目标。</font></font><br><font>HAVING</font><br><font face="宋体 "><font>子句通常是在一个</font></font><font> SQL </font><font face="宋体 "><font>句子的最后。一个含有</font></font><font> HAVING </font><font face="宋体 "><font>子句的</font></font><font> SQL </font><font face="宋体 "><font>并不一定要包含</font></font><br><font>GROUP BY</font><br><font face="宋体 "><font>子句。</font></font><font>HAVING</font><br><font face="宋体 "><font>的语法如下:</font></font><br><font>SELECT "</font><font face="宋体 "><font>栏位</font></font><font>1", SUM("</font><font face="宋体 "><font>栏位</font></font><font>2") FROM "</font><font face="宋体 "><font>表格名</font></font><font>" GROUP BY "</font><font face="宋体 "><font>栏位</font></font><font>1" HAVING (</font><font face="宋体 "><font>函数条件</font></font><font>)</font><br><font face="宋体 "><font>请读者注意:</font></font><font> <span>GROUP BY </span></font><font face="宋体 "><font><span>子句并不是一定需要的</span>。</font></font><br><font face="宋体 "><font>在我们</font></font><font>Store_Information </font><font face="宋体 "><font>表格这个例子中</font></font><br><font>Store_Information </font><font face="宋体 "><font>表格</font></font></p>
<table bgcolor="#999999" cellspacing="0" class="t_table"><tbody>
<tr>
<td width="93">
<p align="center">
<font>store_name</font></p>
</td>
<td width="63">
<p align="center">
<font>sales</font></p>
</td>
<td width="103">
<p align="center">
<font>date</font></p>
</td>
</tr>
<tr>
<td>
<p align="left">
<font>Los Angeles</font></p>
</td>
<td>
<p align="center">
<font>$1500</font></p>
</td>
<td>
<p align="center">
<font>jan-05-1999</font></p>
</td>
</tr>
<tr>
<td>
<p align="left">
<font>San Francisco</font></p>
</td>
<td>
<p align="center">
<font>$300</font></p>
</td>
<td>
<p align="center">
<font>jan-08-1999</font></p>
</td>
</tr>
<tr>
<td>
<p align="left">
<font>Boston</font></p>
</td>
<td>
<p align="center">
<font>$700</font></p>
</td>
<td>
<p align="center">
<font>jan-08-1999</font></p>
</td>
</tr>
</tbody></table>
<p>
<br><font face="宋体 "><font>我们打入</font></font><br><font>SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sales) > 1500</font><br><strong><font face="宋体 "><font>结果</font></font></strong> <strong><font>:</font></strong><br><br><font><u>store_name</u> <u>SUM(Sales)</u><br>
Los Angeles $1800</font></p>
頁:
[1]