23. MySQLでのHAVING(パケットフィルタリング)

1.準備する

1  CREATE  DATABASE mahaiwuji;
2  
3  USE mahaiwuji;
4  
5  CREATE  TABLE student(
 6      sid INT4PRIMARY  KEY 7      sname VARCHAR36 )、
 8      コースVARCHAR36 )、
 9      スコアINT 10      グレードINT4 11)エンジン= INNODBデフォルトの CHARSET = utf8;
12の 
13  INSERT  INTOの学生VALUES1' AA '' 语文'601 )。
14の INSERT  INTOの学生VALUES2' AA '' 数学'701 )。
15の INSERT  INTOの学生VALUES3"AA ' ' 英語' 801 );
 16  
。17  INSERT  INTO学生VALUES4。 ' BB ' ' 言語' 701 );
 18である INSERT  INTO学生VALUES5' BB ' ' 数学'601 。19  INSERT  INTO学生VALUES6' BB '' 英語'601 )、
 20は 
21である INSERT  INTO学生VALUES図7' CC '' 言語'902 );
 22である INSERT  INTO学生VALUES8' CC '' 数学'502 );
23の INSERT  INTOの学生VALUES9' CC '' 英语'602 )。
24の 
25  INSERT  INTOの学生VALUES10' DD '' 语文'702 )。
26の INSERT  INTOの学生VALUES11' DD '' 数学'602 );
 27  INSERT  INTO学生VALUES12であり' DD '' 英語'902)。

2.デモの例

機能:グループ化されたコンテンツを条件式に従ってフィルタリングします。そのため、havingを使用する場合、通常はgroup byが最初に使用されます。

1  - 68分を超えるのヒトクエリ平均
2  SELECT SNAME、AVG(音楽)FROM学生GROUP  BYは SNAME HAVING  AVG(音楽)> 68

3. HAVINGとWHEREの類似点と相違点

同じ

どちらもデータをフィルタリングし、有効なデータのみを保持します。

違う

WHEREは元のレコードをフィルター処理するためのもので、HAVINGはグループ化後にレコードをフィルター処理するためのものです。WHEREはHAVINGの前に記述する必要があります順序を逆にすることはできません。そうしないと、操作が間違ってしまいます。

おすすめ

転載: www.cnblogs.com/mahaiwuji/p/12695635.html