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

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

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

965閲覧

関係データベース groupbyの複数条件指定について

ikanosasimi

総合スコア32

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2017/10/26 18:12

編集2017/10/26 18:48

select 集合関数
from (略)
GROUP BY A,B

GROUPBYで複数条件されていた場合の処理はどうなるのでしょうか?
調べるとBしかグループ化されないようなのですが。
参考URL:
https://www.dbonline.jp/sqlite/select/index14.html
http://www.techscore.com/tech/sql/SQL5/05_08.html

(H25春問25基本情報技術者試験から抜粋)
"中間テスト"表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。

 中間テスト(クラス名,教科名,学生番号,名前,点数)

〔SQL文〕
SELECT クラス名,教科名,AVG(点数) AS 平均点
FROM 中間テスト
GROUP BY クラス名,教科名 ORDER BY クラス名,教科名(正解)

この問題の抽出結果は、

中間テスト表
クラス名,教科名,学生番号,名前,点数
A組,国語,1番,あ,100
A組,数学,1番,あ,0
A組,国語,2番,い,100
A組,数学,2番,い,0
B組,国語,1番,あ,100
B組,数学,1番,あ,100
B組,国語,2番,い,0
B組,数学,2番,い,0
と仮定すると

クラス名,教科名,平均点
A組,国語,100
A組,数学,0
B組,国語,50
B組,数学,50
という形になりませんか?

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

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

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

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

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

guest

回答3

0

ベストアンサー

mysqlで試してみましたけどあっていると思います。(カンマが全角以外は)

sql

1create table `中間テスト` (`クラス名` text, `教科名` text, `学生番号` text, `名前` text, `点数` int); 2 3insert into `中間テスト` values 4('A組','国語','1番','あ',100), 5('A組','数学','1番','あ',0), 6('A組','国語','2番','い',100), 7('A組','数学','2番','い',0), 8('B組','国語','1番','あ',100), 9('B組','数学','1番','あ',100), 10('B組','国語','2番','い',0), 11('B組','数学','2番','い',0); 12 13SELECT `クラス名`,`教科名`,AVG(`点数`) AS `平均点` 14FROM `中間テスト` 15GROUP BY `クラス名`,`教科名` ORDER BY `クラス名`,`教科名` 16;

クラス名 教科名 平均点
A組 国語 100.0000
A組 数学 0.0000
B組 国語 50.0000
B組 数学 50.0000

投稿2017/10/27 00:03

A.Ichi

総合スコア4070

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

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

0

調べるとBしかグループ化されないようなのですが。

そんな世の中が大騒ぎになるようなことはありません。
提示のURLにはそう解釈されるような記述は見当たりませんが、どこで誤解されたのでしょうか?

基本情報技術者試験の問題については、あなたの解釈であっていますよ。

投稿2017/10/26 22:44

sazi

総合スコア25195

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

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

0

GROUPBY じゃなくて GROUP BY です。
提示されているURL データをグループ化して合計や平均を計算

SQL

1select gender, address, count(*) from user group by gender, address;

の結果が載っています。

投稿2017/10/26 18:22

Orlofsky

総合スコア16415

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問