<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HAVING &#8211; スグブログ</title>
	<atom:link href="https://sugublog.org/tag/having/feed/" rel="self" type="application/rss+xml" />
	<link>https://sugublog.org</link>
	<description>ブログ運営について発信中</description>
	<lastBuildDate>Sun, 01 Oct 2023 09:58:22 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://sugublog.org/wp-content/uploads/2021/07/icon_20210703-min-150x150.png</url>
	<title>HAVING &#8211; スグブログ</title>
	<link>https://sugublog.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【SQL基礎】havingの使い方を学ぶ。countなどを使用する</title>
		<link>https://sugublog.org/sql-base-having-count/</link>
					<comments>https://sugublog.org/sql-base-having-count/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[suguru]]></dc:creator>
		<pubDate>Sun, 01 Oct 2023 09:58:20 +0000</pubDate>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[HAVING]]></category>
		<guid isPermaLink="false">https://sugublog.org/?p=5618</guid>

					<description><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" class="webfeedsFeaturedVisual" /></p>SQL文で集約したものに条件を付けたい場合があると思います。 そんな時はHAVING句が使用できます。 条件を付けたい場合だとWHERE関数を思いつくと思いますが、WHERE句はレコード単体に対してのみしか条件を付ける事 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong><span class="swl-marker mark_orange">SQL文で集約したものに条件を付けたい場合</span></strong>があると思います。</p>



<p>そんな時は<strong><span class="swl-bg-color has-swl-deep-01-background-color">HAVING句</span></strong>が使用できます。</p>



<p>条件を付けたい場合だとWHERE関数を思いつくと思いますが、<span class="swl-bg-color has-swl-deep-02-background-color">WHERE句はレコード単体</span>に対してのみしか条件を付ける事ができません。</p>



<p>集約関数を使用する平均値が〇〇、合計値が〇〇といった条件はWHEREではできません。</p>



<p>そこででてくるのがHAVING句です。</p>


<div class="p-blogParts post_content" data-partsID="5030">
<p>windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。</p>
</div>


<p>HAVING句の使い方を学んで行きましょう！</p>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-9330904718533231" data-ad-slot="6086594686"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでhavingの使い方を学ぶ。countなどを使用する</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="512" src="https://sugublog.org/wp-content/uploads/2021/11/access1114-1024x512.jpg" alt="SQLでhavingの使い方を学ぶ。countなどを使用する" class="wp-image-4500" srcset="https://sugublog.org/wp-content/uploads/2021/11/access1114-1024x512.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/access1114-300x150.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/access1114-768x384.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/access1114.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading">SQLでHaving句を使用する時の基礎構文</h3>



<p><strong><span class="swl-marker mark_orange">SQLでHaving句の基本構文</span></strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT 集約関数 FROM テーブル名 GROUP BY カラム名 HAVING 集約関数;</code></pre></div>



<p class="is-style-icon_pen">集約関数とは平均のAVG関数や合計のSUM関数、数を数えるCOUNT関数などです。</p>



<p>集約関数を使用できるのは以下の3つです。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>集約関数が使用できる３句</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>SELECT句</li>



<li>HAVING句</li>



<li>ORDER BY句</li>
</ul>
</div></div>



<p class="has-border -border02">WHEREで集約関数は使用できないので<strong>Having句</strong>を使用します！</p>



<h3 class="wp-block-heading">SQLでHAVING句を使用する時の注意点</h3>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>HAVING句を使用する時の注意点</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>位置はGROUP BY句の後</li>



<li>Having句で使用できるものに制限あり</li>
</ul>
</div></div>



<p>一つ目の注意点として位置でHAVING関数が使用できるのは<strong><span class="swl-marker mark_yellow">GROUP BY句の後ろ</span></strong>になります。</p>



<p>二つ目の注意点は<span class="swl-marker mark_yellow">Having関数で使用できる要素が限られています。</span></p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>Having関数で使用できる要素</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>定数</li>



<li>集約関数</li>



<li>GROUP BY句で指定したカラム</li>
</ul>
</div></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでhavingとCountを使ってみる</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="614" src="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-1024x614.jpg" alt="traning" class="wp-image-4544" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-1024x614.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-300x180.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4-768x461.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-4.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>では実際にSQLでHaving句を使用して実施してみます</p>



<p>以下のテーブルがあったとします。</p>


<div class="wp-block-image is-style-border">
<figure class="aligncenter size-full"><img decoding="async" width="354" height="320" src="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having.png" alt="SQLのテーブル_点数" class="wp-image-5623" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having.png 354w, https://sugublog.org/wp-content/uploads/2023/10/sql_base_table_having-300x271.png 300w" sizes="(max-width: 354px) 100vw, 354px" /><figcaption class="wp-element-caption">SQLのテーブル_点数</figcaption></figure>
</div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p>それぞれのチームの人数が4人のチームを表示させてみます。</p>



<p>下のSQL文を実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT `チーム名`,COUNT(*) &#39;人数&#39; FROM `点数` GROUP BY `チーム名` HAVING COUNT(*) = 4;</code></pre></div>



<h3 class="wp-block-heading">SQL文解説：havingとCount</h3>



<p>SELECT文で表示するカラムで「チーム名」と<strong><span class="swl-bg-color has-swl-deep-01-background-color">集約関数COUNT</span></strong>を指定し、わかりやすいようにカラム名を「人数」にします。</p>



<p>FROMでテーブル名を指定します。</p>



<p>GROUP BY句でグルーピングするカラム「チーム名」を指定します。</p>



<p class="has-border -border02"><strong>Having句で人数の合計が4</strong>を指定します。</p>



<p>ここでHaving句を使用する時の注意点を思い出してください。</p>



<p><strong><span class="swl-marker mark_orange">GROUP BY句の後ろに記述</span></strong>しています。また<strong><span class="swl-marker mark_orange">Having句で集約関数を使用している</span></strong>ので注意点はクリアしている事が分かると思います。</p>



<h3 class="wp-block-heading">SQL文実施：havingとCount</h3>



<p>実行結果は以下となります。</p>



<figure class="wp-block-image size-full is-style-desktop"><img decoding="async" width="104" height="79" src="https://sugublog.org/wp-content/uploads/2023/10/sql_having_count.png" alt="SQLにてHaving句でCountの結果を表示" class="wp-image-5624"/><figcaption class="wp-element-caption">SQLにてHaving句でCountの結果</figcaption></figure>



<p>チームの合計人数が４のチームが表示されています！</p>



<h2 class="wp-block-heading">SQLでhavingとSumを使ってみる</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="683" src="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-1024x683.jpg" alt="traning" class="wp-image-4541" srcset="https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-1024x683.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-300x200.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1-768x512.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/programing_shool1121-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>今度はチームごとの合計値が1500以上のチーム名と合計値を表示してみます。</p>



<p>下のSQL文を実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT `チーム名`,SUM(`点数`) FROM `点数` GROUP BY `チーム名` HAVING SUM(`点数`) &gt; 1500;</code></pre></div>



<ul class="wp-block-list"></ul>



<h3 class="wp-block-heading">SQL文解説：havingとSum</h3>



<p>SELECT文で表示するカラムでチーム名と<strong><span class="swl-bg-color has-swl-deep-01-background-color">集約関数SUM</span></strong>を指定します。</p>



<p>FROMでテーブル名を指定します。</p>



<p>GROUP BY句でグルーピングするカラム「チーム名」を指定します。</p>



<p class="has-border -border02"><strong>Having句で条件の点数の合計が1500以上</strong>を指定します。</p>



<p>ここでHaving句を使用する時の注意点を思い出してください。</p>



<p><strong><span class="swl-marker mark_orange">GROUP BY句の後ろ</span></strong>に記述しています。また<span class="swl-marker mark_orange"><strong>Having句で集約関数を使用</strong>している</span>ので注意点はクリアしている事が分かると思います。</p>



<h3 class="wp-block-heading">SQL文実施：havingとSum</h3>



<p>では上記のSQL文を実行してみます。</p>


<div class="wp-block-image is-style-desktop">
<figure class="aligncenter size-full"><img decoding="async" width="152" height="70" src="https://sugublog.org/wp-content/uploads/2023/10/sql_having_sum.png" alt="SQLにてHaving句でSUMの結果を表示" class="wp-image-5625" srcset="https://sugublog.org/wp-content/uploads/2023/10/sql_having_sum.png 152w, https://sugublog.org/wp-content/uploads/2023/10/sql_having_sum-150x70.png 150w" sizes="(max-width: 152px) 100vw, 152px" /><figcaption class="wp-element-caption">SQLにてHaving句でSUMの結果</figcaption></figure>
</div>


<p>チーム名でグルーピングしてその合計値が表示されて1500以上のものが表示されています。</p>



<h2 class="wp-block-heading">SQLでhavingを使用してエラーが出る場合</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="792" src="https://sugublog.org/wp-content/uploads/2021/07/clash-1024x792.jpg" alt="エラー発生" class="wp-image-3586" srcset="https://sugublog.org/wp-content/uploads/2021/07/clash-1024x792.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/07/clash-300x232.jpg 300w, https://sugublog.org/wp-content/uploads/2021/07/clash-768x594.jpg 768w, https://sugublog.org/wp-content/uploads/2021/07/clash-1536x1187.jpg 1536w, https://sugublog.org/wp-content/uploads/2021/07/clash-scaled.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>では以下のSQL構文を実行してみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT `チーム名`,SUM(`点数`) FROM `点数` GROUP BY `チーム名` HAVING `点数` &gt; 250;</code></pre></div>



<p>Having句で「点数」カラムを条件にしていますが、GROUP BY句で使用されていないのでエラーが出てしまいます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>#1054 - 列 &#39;点数&#39; は &#39;having clause&#39; にはありません。</code></pre></div>



<p>Having句で使用する時の注意点に気を付けながら使用してください。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9330904718533231"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9330904718533231"
     data-ad-slot="8455594968"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">SQLでhavingの使い方を学ぶ。countなどを使用するのまとめ</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="620" src="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg" alt="SQLでhavingの使い方を学ぶ。countなどを使用するのまとめ" class="wp-image-4505" srcset="https://sugublog.org/wp-content/uploads/2021/11/user1114-1024x620.jpg 1024w, https://sugublog.org/wp-content/uploads/2021/11/user1114-300x182.jpg 300w, https://sugublog.org/wp-content/uploads/2021/11/user1114-768x465.jpg 768w, https://sugublog.org/wp-content/uploads/2021/11/user1114.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p><strong>SQLでHaving句の基本構文</strong>は以下となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>SELECT 集約関数 FROM テーブル名 GROUP BY カラム名 HAVING 集約関数;</code></pre></div>



<p>SQLでHaving句を使う時の<span class="swl-inline-color has-swl-deep-01-color">注意点</span>は以下となります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>HAVING句を使用する時の注意点</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>位置はGROUP BY句の後</li>



<li>Having句で使用できるものに制限あり</li>
</ul>
</div></div>



<p><strong><span class="swl-bg-color has-swl-deep-01-background-color">Having句で使用できるもの</span></strong>は以下となります。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl"><div class="cap_box_ttl"><span>Having関数で使用できる要素</span></div><div class="cap_box_content">
<ul class="wp-block-list">
<li>定数</li>



<li>集約関数</li>



<li>GROUP BY句で指定したカラム</li>
</ul>
</div></div>



<p><span class="swl-marker mark_yellow">レコード単体に条件</span>を付けたい場合は<span class="swl-marker mark_yellow">WHERE</span>ですが集約したものは指定できません。<span class="swl-marker mark_orange">集約関数やグルーピングしたものに条件</span>を付けたいときは、<span class="swl-marker mark_orange">Having</span>句を使用して見て下さい。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sugublog.org/sql-base-having-count/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
