アットウィキロゴ

DB基礎⑦(データ並び替え:ORDER BY・表示制限:LIMIT・グループ集計:GROUP BY)

▼データ並び替え(ORDER BY)▼


▼昇順(ASC)

SELECT 表示したいフィールド FROM テーブル名 ORDER BY 順番を変える基準となるフィールド ASC;

例:「staff」テーブルの給与が少ない順に表示せよ
  SELECT * FROM staff ORDER BY salary ASC;

以下のように表示
 ⇒ASC.png


▼降順(DESC)

SELECT 表示したいフィールド FROM テーブル名 ORDER BY 順番を変える基準となるフィールド DESC;

例:「staff」テーブルの給与が多い順に表示せよ
  SELECT * FROM staff ORDER BY salary DESC;

以下のように表示
 ⇒DESC.png

  ※指定がない場合は昇順になる。
SELECT 表示したいフィールド FROM テーブル名 ORDER BY 順番を変える基準となるフィールド 


▼複数指定(基準にしたいフィールドを「,」カンマでつなぐ)


例①:
  SELECT * FROM staff ORDER BY section_id,salary;

以下のように表示

 ⇒複数指定①.png

※優先順位が、1:section_id、2:salaryの順に、昇順で表示する。

例②:
SELECT * FROM staff ORDER BY section_id ASC,salary DESC;

以下のように表示

 ⇒複数指定2.png

※優先順位が、1:section_id、2:salaryの順で、section_idは昇順、salaryは降順で表示。


▼データの表示制限(LIMIT)▼

   ・フィールドの開始位置から件数文のレコードを表示する。

SELECT フィールド名 FROM テーブル LIMIT 開始位置(スタート), 件数;

  ※開始位置は最初に入れたデータが基準となる、開始位置と件数の間は「,」(カンマ)でくくる


例:「staff」テーブルの1番目から3番目のレコードを表示せよ
  SELECT * FROM staff LIMIT 1,3;

 ※①.0番目のレコードが存在しないため、以下でも同じ結果が得られる。
  SELECT * FROM staff LIMIT 0,3;

 ※②.開始位置は省略できる。その場合、0番目からスタートすることになる。
  そのため、以下でも同じ結果が得られる。
  SELECT * FROM staff LIMIT 3;




▼グループ集計(GROUP BY)▼

  ※SELECTと一緒に使うが、通常通り表示してもあまり意味はない。
    ⇒COUNT()と一緒に使用する。

SELECT フィールド名(対象のフィールド名と同じもの), COUNT(フィールド名) FROM テーブル GROUP BY 対象のフィールド名;

※対象のフィールドで同じものがいくつあるかをcount(フィールド名)の箇所フィールドの種類ごとにレコードの件数を表示する。

  注意》以下のように記述すると、対象のフィールドが重複削除された状態で表示されるだけ。
     SELECT フィールド名(対象のフィールド名と同じもの) FROM テーブル GROUP BY 対象のフィールド名;


例:「staff」テーブルの部署番号ごとの人数を表示せよ(部署番号●番の人は■人)

  SELECT section_id, COUNT(staff_id) AS cnt FROM staff GROUP BY section_id;

以下のように表示、

  ⇒GROUP_BY.bmp


▼GROUP化したときに条件(GROUP BY - HAVING 条件)※比較演算子を使用


SELECT フィールド名(対象のフィールド名と同じもの), COUNT(フィールド名) FROM テーブル GROUP BY 対象のフィールド名 HAVING 条件;


例:「staff」テーブルのスタッフが一人の部署だけを表示

SELECT
section_id,
COUNT(staff_id),
AVG(salary) ,
SUM(salary)
FROM staff
GROUP BY section_id
HAVING COUNT(staff_id) = 1;

①GROUP BY section_id と、HAVING COUNT(staff_id) = 1;で、従業員番号ごとの件数が1の場合という条件
②COUNT(staff_id),とGROUP BY section_idで、部署番号の種類ごとの件数を表示する。


****************************************
【エイリアス(AS)について】

  • WHERE句はエイリアスが使えない
  • HAVING句はエイリアスが使える

****************************************
最終更新:2012年01月19日 23:22
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。