【MySQL】平均値を表示する!this is incompatible with sql_mode=only_full_group_by

この記事は約3分で読めます。
ポートフォリオ制作実績

あらかじめこちらのページを参考に以下のような表を作っておくと便利です。

【MySQL】表(テーブル)を作成!A table must have at least 1 column
表(テーブル)の列(縦)のことをフィールドまたはカラム、行(横)のことをレコードといいます。 ここで、以下のようなエラーメッセージが出て躓くような方もいるでしょう。 ERROR 1064 (42000): You have an e...
mysql> select*from hyou1;
+-----------------+-----------+-------+------------+
| food | sanchi | price | shomikigen |
+-----------------+-----------+-------+------------+
| お米 | 新潟県 | 3900 | 2020-10-09 |
| みかん | 愛媛県 | 200 | 2020-10-09 |
| さくらんぼ | 山形県 | 10000 | 2020-10-10 |
| ラフランス | 山形県 | 2000 | 2020-10-09 |
+-----------------+-----------+-------+------------+
4 rows in set (0.00 sec)

【MySQL】平均値を表示するためのソースコードやコマンドの手順を解説します。

 

スポンサーリンク

【MySQL】平均値を表示するためのソースコードとコマンド手順

3列目のprice(価格)をすべて平均してみましょう。

mysql> select avg(price)from hyou1;
+------------+
| avg(price) |
+------------+
| 4025.0000 |
+------------+
1 row in set (0.00 sec)

4つの価格の値が平均されました。

 

スポンサーリンク

【MySQL】平均値を表示するためのソースコードとコマンド手順(重複なし)

重複しない値の平均を求める場合はこちらのソースコードを入力しましょう(今回は重複しない値はありません)。

distinctを加えます。これだけです。簡単ですね。

mysql> select avg(distinct price)from hyou1;

select avg(distinct [フィールド名(列の名前)])from [テーブル名(表の名前)];

 

foodとpriceを合わせて表示する場合はこちらを使います。group by〜が抜けると、「this is incompatible with sql_mode=only_full_group_by」というエラーメッセージが表示されてしまいます。

mysql> select food, avg(price)from hyou1 group by food;
+-----------------+------------+
| food | avg(price) |
+-----------------+------------+
| お米 | 3900 |
| みかん | 200 |
| さくらんぼ | 10000 |
| ラフランス | 2000 |
+-----------------+------------+
4 rows in set (0.00 sec)
タイトルとURLをコピーしました