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

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

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

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

Q&A

3回答

528閲覧

group by はどのような用途で用いられるのか?

k0908

総合スコア102

SQL

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

0グッド

0クリップ

投稿2018/07/18 06:41

SQLでgroup by はどのような用途で用いられるのでしょうか?
group by でググってみると「集計のために使われる」と出てきたのですが、集計のためとはどういうことでしょうか?
参考サイト:http://sql55.com/t-sql/sql-basic-8.php
http://www.atmarkit.co.jp/ait/articles/0012/22/news002.html

降順・昇順にならべかえるorder by  ともまた違う役割なのでしょうか?

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

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

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

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

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

m.ts10806

2018/07/18 06:48 編集

2つ目の@ITは非常に分かりやすい例文があげられていますが、何が分からないのでしょうか?「分かったこと」「分からないこと」を明確にして質問本文に追記してください。 https://teratail.com/help/question-tips#questionTips2-1
k0908

2018/07/18 07:12

今回、僕が書いたSQLは集計を行うものではないのですが(それぞれの項目に対して上位3件を取得するもの)、group by 句がないとエラーが発生し実行ができませんでした。このように集計を行う場合でもgroup byが必要な理由がわからなかったです。
m.ts10806

2018/07/18 07:13

質問本文に追記してください。
m.ts10806

2018/07/18 07:16 編集

そのSQL(テーブル定義、サンプルデータ)も提示されると良いかと。ただ、「集計」と頭がいってしまっているようなので、それだけだと理解が進みにくいと感じてその観点で回答しています。
guest

回答3

0

group byは集約のためにあります

たとえば、クラステーブルがあったとして、その中の男女人数をカウントする場合は

SELECT 性別, count(*)
FROM クラス
GROUP BY 性別

と行うと、性別ごとに人数が集約(集計)されます

order byは記載されている通り、並び替えなので
データの集約などは行わずに
データの並び替えだけを行います

例)
SELECT *
FROM クラス
ORDER BY 出席番号 ASC

上記のようなSQLだと出席番号の若い順にデータを取得することができます

投稿2018/07/18 07:20

KenichiKajiwara

総合スコア30

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

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

0

例えば、データに分類があり、その分類は大中小にカテゴライズされていたとします。
このデータを大分類で集計したい場合、大分類でグルーピングします。

グルーピングする項目は、通常のSELECTする項目と同様に扱えますが、グルーピングしていない項目(集計したい項目)は集計の目的に応じた集計関数を用いる必要があります。
集計関数には、count(),sum(),avg()などがあります。

※order byとは全然別物です。

投稿2018/07/18 07:18

編集2018/07/18 07:27
sazi

総合スコア25199

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

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

0

「集計」ではなく「集約」として見てみると分かりやすいと思います。
「Group」なので。

投稿2018/07/18 07:15

m.ts10806

総合スコア80852

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問