質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

625閲覧

selectで抽出したデータを集計したい。

midsum0323

総合スコア40

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/03/27 01:24

編集2020/03/27 03:53

select文で抽出したデータの平均や合計を知りたい場合、どのようにすればいいでしょうか。
例えば氏名と年齢と性別(男=0、女=1)で、女性のリストをselectで出したうえ(select文をできるだけ変更せずに)で平均年齢を求める場合
select
name,
age,
sex
from list
where sex='1'
のあとどう記述すればいいでしょうか。
使用しているのはMySQLです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

with句を使う(MySQL8.0以降)

SQL

1with 参照名 as ( 2 select name, age, sex from list where sex='1' 3) 4select * 5 , (select avg(age) from 参照名) 6from 参照名

投稿2020/03/27 02:02

sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

midsum0323

2020/03/27 02:20

ありがとうございました。
guest

0

ベストアンサー

「パフォーマンス」より「できるだけ触らず」を優先する前提で
元のselect文を丸ごとサブクエリにして、
select sex, agv(age) from ([元のselect文]) group by sex
でいいんじゃないですかね


マニュアル見るようにしましょう。
(dev.mysql.com)12.19.1 GROUP BY (集約) 関数 - AVGで平均が求められます。

参考
(google.com)mysql select 平均

投稿2020/03/27 01:33

編集2020/03/27 01:58
Y.H.

総合スコア7918

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

midsum0323

2020/03/27 01:45

伺い方が悪かったのですが、実際の条件やselect文が複雑で、それをできるだけ触らずに計算できないかと思い質問しました。
Y.H.

2020/03/27 01:58 編集

どう転んでも現在の質問内容からはそれを読み取ることは不可能です。 質問を編集しその条件(前提事項)を追記ください。 回答に追記しておきました。
midsum0323

2020/03/27 02:21

ありがとうございました。質問の記載には以後気を付けます。
Y.H.

2020/03/27 02:36

解決してよかったです:-) >質問の記載には以後気を付けます。 今編集していただけないのね。今できるのにやらないひとが「以後気を付ける」とは思えないですけどね。
guest

0

ヒントは、select AVG ... GROUP BY sex ...
マニュアルを調べましょうね。

投稿2020/03/27 01:32

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

midsum0323

2020/03/27 01:45

伺い方が悪かったのですが、実際の条件やselect文が複雑で、それをできるだけ触らずに計算できないかと思い質問しました。
Orlofsky

2020/03/27 01:52

AVGを使うか、質問のSELECTした結果をLOOPが使えるSQL以外の言語で年齢や件数を加算してLOOPし終わったら平均を求めましょう。
midsum0323

2020/03/27 02:22

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問