logo
     

メニュー
↓ SQL ↓
●データ取得の基本(SELECT)

●取得条件の指定(WHERE)

●計算式を利用する

●取得データの並べ替え
      (ORDER BY)


●別名を付ける

⇒データを集計(グループ化)する

●テーブルの結合
      (INNER JOIN)


●テーブルの結合
      (OUTER JOIN)


●テーブルの結合
      (CROSS JOIN)


●重複行の排除(DISTINCT)

●副問い合わせ(サブクエリ)

●相関副問い合わせ
      (相関サブクエリ)


●クエリの結合

●文字列値を連結する

●文字列の一部を取り出す

●文字列を置換する

●NULLを置き換える

●条件によって置き換える

↓SQL Server 2012 Express↓
●SQL Server 2012 Express
      インストール


●SQL Server 2012 Express
      ネットワークの構成


●SQL Server 2012 Express
      ログインユーザの作成


●SQL Server 2012 Express
      データベースの作成


●SQL Server 2012 Express
      テーブルの作成


●SQL Server 2012 Express
      SQLの実行


●復旧モデルとバックアップ

↓ 番外編 ↓
●Windows Server 2012 評価版
      インストール


●Windows Server 2012
      スタートメニュー利用方法


●Windows Server 2012
      シャットダウン・再起動方法


●Windows Server 2012
      サーバーマネージャ自動起動無効


●Windows Server 2012
      コンピュータ名・ドメイン変更


データを集計(グループ化)する (COUNT, SUM, MAX, MIN, AVGなど)



SELECT文でデータを取得する際に、合計などの集計をすることができます。
集計の基準(どの列を基準に同じデータごとに集計するか)は、
GROUP BY句を利用します。
また、集計した結果を条件としたい場合は、HAVING句を利用します。

文法:SELECT [<列名1>,…]<集計関数>(<列名2>)[, <列名3>…]
   FROM <テーブル名>
   [WHERE 条件式]
   [GROUP BY グループ列1, グループ列2…]
   [HAVING 条件式]

なお、SELECT 列名1, SUM(列名2) FROM TABLE1 のように、集計関数を利用する列としない列の取得が混在している場合で、
GROUP BYのグループ列に集計を利用しない列名が指定されていない場合は実行できません。
正しくは、SELECT 列名1, SUM(列名2) FROM TABLE1 GROUP BY 列名1 となります。

よく利用される集計関数
例 意味
COUNT(列名1) 列名1の件数
COUNT(*) 特に列を指定しない場合の件数
*結果は上記と同様
SUM(列名1) 列名1の値の合計
MAX(列名1) 列名1の値の最大値
MIN(列名1) 列名1の値の最小値
AVG(列名1) 列名1の値の平均値


***例(COUNT:所属ごとの人数)***
[社員マスタ]
所属コード 社員コード 氏名 所持金
01 001 テスト一郎 1000
01 002 テスト二郎 5000
02 001 テスト三郎 700
02 002 テスト四郎 -100
03 001 テスト五郎 1200


[実行SQL]
SELECT
  所属コード,
  COUNT(所属コード) AS 人数
FROM
  社員マスタ
GROUP BY
  所属コード


[結果]
所属コード 人数
01 2
02 2
03 1


***例(SUM:所属ごとの所持金合計)***
[社員マスタ]
所属コード 社員コード 氏名 所持金
01 001 テスト一郎 1000
01 002 テスト二郎 5000
02 001 テスト三郎 700
02 002 テスト四郎 -100
03 001 テスト五郎 1200


[実行SQL]
SELECT
  所属コード,
  SUM(所持金) AS 所持金合計
FROM
  社員マスタ
GROUP BY
  所属コード
HAVING
  SUM(所持金) < 2000

※'SUM(所持金)'は集計関数を利用したものなので、WHERE句として指定はできません

[結果]
所属コード 所持金合計
02 600
03 1200


***例(MAX:一番多い所持金)***
[社員マスタ]
所属コード 社員コード 氏名 所持金
01 001 テスト一郎 1000
01 002 テスト二郎 5000
02 001 テスト三郎 700
02 002 テスト四郎 -100
03 001 テスト五郎 1200


[実行SQL]
SELECT
  MAX(所持金) AS 最大所持金
FROM
  社員マスタ


[結果]
最大所持金
5000

<<PR>> ネットワークセキュリティを見直しませんか
価格:300円
現役SEが語るSEの仕事あれこれ-これから就職を希望する人へ-
価格:300円