SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline HAVING AVG(buyprice) > 50;
mysqlで平均値を求める方法
mysql では、AVG() 関数を使用して平均を見つけることができます。この関数は、返された行数とデータの各行の合計を計算することによって、指定された列データの平均を見つけることができます。構文「SELECT AVG (列名) FROM テーブル名」。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、AVG() 関数を使用して平均を見つけることができます。
MySQL AVG() 関数は、一連の値または式の平均を計算するために使用される集計関数です。
AVG() 関数は、返された行の数とデータの各行の合計を計算することによって、指定された列データの平均を見つけることができます。
AVG() 関数の構文は次のとおりです。
SELECT AVG(column_name) FROM table_name;
DISTINCT 演算子を AVG() 関数に追加して、さまざまな値の平均を計算することもできます。たとえば、一連の値 1
、1
、2
、3
がある場合、AVG() 関数は次のようになります。 DISTINCT 演算は異なる値を返します。値の合計は (1 2 3)/3 = 2.00
となります。
MySQL AVG の例
デモ用にサンプル データベースの products
テーブルを使用します。次の図は、products
テーブルの構造です。 -
mysql> desc products; +--------------------+---------------+------+-----+---------+------------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------+------+-----+---------+------------------+ | productCode | varchar(15) | NO | PRI | | | | productName | varchar(70) | NO | MUL | NULL | | | productLine | varchar(50) | NO | MUL | NULL | | | productScale | varchar(10) | NO | | NULL | | | productVendor | varchar(50) | NO | | NULL | | | productDescription | text | NO | | NULL | | | quantityInStock | smallint(6) | NO | | NULL | | | buyPrice | decimal(10,2) | NO | | NULL | | | MSRP | decimal(10,2) | NO | | NULL | | | stockValue | double | YES | | NULL | STORED GENERATED | +--------------------+---------------+------+-----+---------+------------------+ 10 rows in set
products
テーブル内のすべての製品の平均価格を計算するには、次のクエリに示すように AVG 関数を使用できます。上記のクエリ ステートメントを実行すると、次の結果が得られます。
SELECT AVG(buyprice) 'Avarage Price' FROM products;
関数は、AVG
関数によって返される平均値をフォーマットするために使用されることに注意してください。
句を SELECT
ステートメントに追加して、値のサブセットの平均を計算できます。たとえば、製品ライン Classic Cars
の製品の平均価格を計算するには、次のクエリを使用できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>mysql> SELECT AVG(buyprice) &#39;Avarage Price&#39; FROM products;
+---------------+
| Avarage Price |
+---------------+
| 54.395182 |
+---------------+
1 row in set</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のクエリ ステートメントを実行すると、次の結果が得られます-
SELECT AVG(buyprice) 'Avarage Classic Cars Price' FROM products WHERE productline = 'Classic Cars';
DISTINCT を使用した MySQL AVG() 関数
一部の製品は同じ価格なので、次のクエリを使用して確認できます。上記のクエリ ステートメントを実行すると、次の結果が得られます。
mysql> SELECT AVG(buyprice) 'Avarage Classic Cars Price' FROM products WHERE productline = 'Classic Cars'; +----------------------------+ | Avarage Classic Cars Price | +----------------------------+ | 64.446316 | +----------------------------+ 1 row in set
AVG() 関数を使用して、以下に示すように
DISTINCT演算子を追加することで、さまざまな価格の平均を計算できます。
SELECT COUNT(buyprice) - COUNT(DISTINCT buyprice) FROM products;
mysql> SELECT COUNT(buyprice) - COUNT(DISTINCT buyprice) FROM products; +--------------------------------------------+ | COUNT(buyprice) - COUNT(DISTINCT buyprice) | +--------------------------------------------+ | 2 | +--------------------------------------------+ 1 row in set
結果は、
DISTINCT 演算子を使用した平均価格とはわずかに異なります。 GROUP BY 句を使用した MySQL AVG
GROUP BY 句を使用した AVG 関数をよく使用します。表の平均値です。
たとえば、各製品ラインの製品の平均価格を計算するには、次のクエリのように、GROUP BY 句を指定した AVG 関数を使用します。 ## 上記のクエリ ステートメントを実行すると、次の結果が得られます。
SELECT AVG(DISTINCT buyprice) FROM products;
MySQL AVG with HAVING 句
HAVING
サブAVG 関数の子 文はグループ平均の条件を設定します。たとえば、平均製品価格が50 を超える製品ラインのみを選択する場合は、次のクエリを使用できます。 mysql> SELECT AVG(DISTINCT buyprice) FROM products;
+------------------------+
| AVG(DISTINCT buyprice) |
+------------------------+
| 54.372870 |
+------------------------+
1 row in set
ログイン後にコピー
上記のクエリ ステートメントを実行すると、次の結果が得られます。 -mysql> SELECT AVG(DISTINCT buyprice) FROM products; +------------------------+ | AVG(DISTINCT buyprice) | +------------------------+ | 54.372870 | +------------------------+ 1 row in set
SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline;
MySQL AVG() 関数とサブクエリ
SQL ステートメント内で AVG() 関数を複数回使用して、一連の平均値の平均を計算できます。 。たとえば、製品ラインの平均購入価格は次のように計算できます。 mysql> SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline; +------------------+---------------+ | productline | Avarage Price | +------------------+---------------+ | Classic Cars | 64.446316 | | Motorcycles | 50.685385 | | Planes | 49.629167 | | Ships | 47.007778 | | Trains | 43.923333 | | Trucks and Buses | 56.329091 | | Vintage Cars | 46.066250 | +------------------+---------------+ 7 rows in set
SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline HAVING AVG(buyprice) > 50;
ログイン後にコピー実行方法-
サブクエリSELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline HAVING AVG(buyprice) > 50;
製品ラインに基づいて平均購入価格を計算します。
外側のクエリは、サブクエリから返された製品ラインの平均購入価格を計算します。
- NULL 値を含む MySQL AVG 関数
- AVG() 関数は計算で NULL
最初に
、2 つの列id と
val
t という名前の新しいテーブルを作成します。 #val 列には NULL
値を含めることができます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>mysql> SELECT productline, AVG(buyprice) &#39;Avarage Price&#39; FROM products GROUP BY productline HAVING AVG(buyprice) > 50;
+------------------+---------------+
| productline | Avarage Price |
+------------------+---------------+
| Classic Cars | 64.446316 |
| Motorcycles | 50.685385 |
| Trucks and Buses | 56.329091 |
+------------------+---------------+
3 rows in set</pre><div class="contentsignin">ログイン後にコピー</div></div>
2 番目の
、t
テーブルに NULL
値を含むいくつかの行を挿入します。
SELECT AVG(pl_avg) 'Average Product' FROM ( SELECT AVG(buyprice) pl_avg FROM products GROUP BY productline ) avgs;
3 番目の 、AVG()
関数を使用して、val
列の値の平均を計算します。
mysql> SELECT AVG(pl_avg) 'Average Product' FROM ( SELECT AVG(buyprice) pl_avg FROM products GROUP BY productline ) avgs; +-----------------+ | Average Product | +-----------------+ | 51.1553314286 | +-----------------+ 1 row in set
CREATE TABLE IF NOT EXISTS t( id int auto_increment primary key, val int );
値が計算に含まれていないため、このステートメントは予想どおり
2 を返します。 AVG関数。
制御フロー関数を使用した MySQL AVG
カラムの平均を計算し、単一のステートメントで同じカラムの平均を条件付きで計算するには、AVG 関数を使用できます。フロー関数 (
IF、
CASE
IFNULL、NULLIF
など) を制御します。たとえば、
クラシックカー製品ラインの平均価格とすべての製品の平均価格の比率を計算するには、次のステートメントを使用します:
INSERT INTO t(val) VALUES(1),(2),(nulL),(3);
上記のクエリ ステートメントを実行すると、次の結果が得られます。
SELECT AVG(val) FROM t;
製品ラインが
Classic Cars の場合、IF(productline='Classic Cars',buyprice,NULL) 式は価格を返します。それ以外の場合は
NULL
AVG 関数は計算で NULL
値を無視するため、AVG(IF(productline ='Classic Cars', buyprice, NULL))
式は製品ラインのみを計算します。は、クラシックカー
製品の平均価格です。
[関連する推奨事項: mysql ビデオ チュートリアル ]
以上がmysqlで平均値を求める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

データベースに接続するときの一般的なエラーとソリューション:ユーザー名またはパスワード(エラー1045)ファイアウォールブロック接続(エラー2003)接続タイムアウト(エラー10060)ソケット接続を使用できません(エラー1042)SSL接続エラー(エラー10055)接続の試みが多すぎると、ホストがブロックされます(エラー1129)データベースは存在しません(エラー1049)
