<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Having</id>
	<title>Having - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Having"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Having&amp;action=history"/>
	<updated>2026-07-12T10:57:00Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Having&amp;diff=4870903&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救1个来源，并将0个来源标记为失效。) #IABot (v2.0.9.5) (KCUSCBZMOGYNMYBGBBFRQQIZCGYNKGOC - 28909</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Having&amp;diff=4870903&amp;oldid=prev"/>
		<updated>2026-03-17T11:56:07Z</updated>

		<summary type="html">&lt;p&gt;补救1个来源，并将0个来源标记为失效。) #IABot (v2.0.9.5) (&lt;a href=&quot;/index.php?title=User:KCUSCBZMOGYNMYBGBBFRQQIZCGYNKGOC&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:KCUSCBZMOGYNMYBGBBFRQQIZCGYNKGOC（页面不存在）&quot;&gt;KCUSCBZMOGYNMYBGBBFRQQIZCGYNKGOC&lt;/a&gt; - 28909&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[SQL]]中的&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;子句规定：[[查询 (SQL)|SELECT语句]]仅返回聚合值（aggregate values）满足指定条件的行。&amp;lt;ref name=&amp;quot;pgs23&amp;quot; /&amp;gt;{{rp|125–127}}&lt;br /&gt;
&lt;br /&gt;
== 用法==&lt;br /&gt;
初学者经常混淆&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;，但它们的作用阶段完全不同。&amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;在查询执行的早期阶段生效，用于过滤从表中读取的原始行。如果查询包含&amp;lt;code&amp;gt;GROUP BY&amp;lt;/code&amp;gt;，系统会先对读取的行进行分组和聚合计算。在聚合操作之后，系统才会应用&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;，过滤掉那些不符合指定条件的聚合行。因此，&amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;作用于从表中读取的数据，而&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;仅应作用于聚合后的数据——因为在查询的初始阶段，这些聚合值（如总和、平均值）还是未知的。为了查看由&amp;lt;code&amp;gt;GROUP BY&amp;lt;/code&amp;gt;子句生成的当前状态（Condition），通常会使用&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;子句。&lt;br /&gt;
==示例==&lt;br /&gt;
若要查询2000年1月1日当天总销售额超过1000美元的部门ID列表及其销售额总和：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DeptID, SUM(SaleAmount)&lt;br /&gt;
FROM Sales&lt;br /&gt;
WHERE SaleDate = &amp;#039;2000-01-01&amp;#039;&lt;br /&gt;
GROUP BY DeptID&lt;br /&gt;
HAVING SUM(SaleAmount) &amp;gt; 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
以下查询将返回员工的人数超过1人的部门列表：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DepartmentName, COUNT(*) &lt;br /&gt;
FROM Employee&lt;br /&gt;
JOIN Department ON Employee.DepartmentID = Department.DepartmentID &lt;br /&gt;
GROUP BY DepartmentName&lt;br /&gt;
HAVING COUNT(*) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;非常方便，但并非必不可少。如果不用&amp;lt;code&amp;gt;HAVING&amp;lt;/code&amp;gt;，实现上述示例等效功能的代码可能如下所示：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM (&lt;br /&gt;
    SELECT DepartmentName AS deptNam, COUNT(*) AS empCount&lt;br /&gt;
    FROM Employee AS emp&lt;br /&gt;
    JOIN Department AS dept ON emp.DepartmentID = dept.DepartmentID&lt;br /&gt;
    GROUP BY deptNam&lt;br /&gt;
) AS grp&lt;br /&gt;
WHERE grp.empCount &amp;gt; 1;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考文献==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=&amp;quot;pgs23&amp;quot;&amp;gt;{{cite book |title=PostgreSQL 16.1 Documentation |year=2023 |publisher=The PostgreSQL Global Development Group |url=https://www.postgresql.org/files/documentation/pdf/16/postgresql-16-A4.pdf |access-date=2024-02-08 |archive-date=2026-03-11 |archive-url=https://web.archive.org/web/20260311020733/https://www.postgresql.org/files/documentation/pdf/16/postgresql-16-A4.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部链接==&lt;br /&gt;
*[http://www.databasejournal.com/features/mysql/article.php/3469351 The HAVING and GROUP BY SQL clauses] {{Webarchive|url=https://web.archive.org/web/20110603062905/http://www.databasejournal.com/features/mysql/article.php/3469351 |date=2011-06-03 }}&lt;br /&gt;
*[https://www.w3schools.com/sql/sql_functions.asp SQL Aggregate Functions] {{Webarchive|url=https://web.archive.org/web/20170503060710/https://www.w3schools.com/sql/sql_functions.asp |date=May 3, 2017 }}&lt;br /&gt;
&lt;br /&gt;
{{SQL}}&lt;br /&gt;
 &lt;br /&gt;
[[Category:SQL]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>