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

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

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

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

Q&A

解決済

2回答

4558閲覧

名前と平均点を列挙するSQLを教えて頂ければと思います。

退会済みユーザー

退会済みユーザー

総合スコア0

SQL

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

0グッド

1クリップ

投稿2017/12/14 04:44

5人の名前と全科目の平均点だけを列挙するSQLを書きたいのですが、
どうしたら良いか悩んでおります。
平均値を出すのは「 AVG 」を使用すると思いますので以下のような形になるかと思いますが、どのように人と点数を紐付けするべきかが辿り着けません。
初心者な質問で申し訳ありませんが、ご教授頂ければと思います。
どうぞ宜しくお願い致します。
select AVG(点数) from 点数テーブル where ID = ?;

受験者マスタ

ID 受験番号 名前


1 10 A
2 50 B
3 75 C
4 99 D
5 100 E

点数テーブル

ID 科目 点数


1 国語 100
1 理科 60
1 算数 80
2 国語 80
2 算数 30
4 国語 60
4 理科 40
5 英語 100
5 体育 10
5 算数 45

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

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

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

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

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

guest

回答2

0

ベストアンサー

下記のSQですね。

SQL

1select 2 b.名前, avg(a.点数) AS 平均点 3from 4 点数テーブル a inner join 受験者マスタ b 5 on a.ID = b.ID 6group by 7 b.名前;

join と group by をWEB検索すれば解説が見つかるでしょう。

※追記
group by には、ID も含めたほうがいいですね。同名の人がいた場合、纏めてしましいますので。

group by a.ID, b.名前;

投稿2017/12/14 05:04

編集2017/12/14 13:56
hatena19

総合スコア33715

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

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

退会済みユーザー

退会済みユーザー

2017/12/14 05:30

回答ありがとうございます。 その2つの知識がありませんでした。 本当に助かりました。
guest

0

SQL

1SELECT M.名前, AVG(S.点数) 平均点 2FROM 点数テーブル S 3INNER JOIN 受験者マスタ M ON M.ID = S.ID 4GROUP BY M.ID, M.名前

投稿2017/12/14 05:12

x_x

総合スコア13749

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

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

退会済みユーザー

退会済みユーザー

2017/12/14 05:28

回答ありがとうございます。 inner join to group byで結合をすれば良いのですね! 助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問