WEBシステム開発|PHPとPostgreSQLの開発例|●2_04_05-検索処理(group句、having句)(select)

PHPとPostgreSQLを利用したWEBシステムの開発例を掲載していきます。腕時計 販売サイト my-watch.biz



2_04_05-検索処理(group句、having句)(select)

 ここから少しずつ複雑になります。
 
group句は集計を取る時に条件を付けるものです。
SELECT

カラム名(1) , 集計関数(カラム名(2)), ・・・・ 

FROM テーブル名 

GROUP BY カラム名(1)

group句の説明の前に関数の説明だけ少しします。


SELECT

sum(カラム名)

FROM テーブル名 

sum(カラム名)はカラムの数値を合計する関数です。
 関数に関しての詳しい説明は改めて行います。

以下のSQLを実行して下さい。

SELECT
  sum(kakaku)
FROM
  shouhin_t

全ての商品の合計金額が示されます。


ここで全体のデータで「top_on_flug」カラムが「on」か「NULL」の状態があります。
ここで「top_on_flug」カラムが「on」の場合の合計金額と、「NULL」の状態の合計金額を出したい場合にgroup句を使います。


下記のSQLを実行して下さい。
SELECT
  top_on_flug,
  sum(kakaku)
FROM
  shouhin_t
GROUP BY
  top_on_flug

下記が出力されます。

「top_on_flug」カラムが「NULL」の状態の合計金額が「1,253,410」、「on」の場合の合計金額が「46,000」となります。

少しこのデータではイマイチかもしれませんね。
たとえば店舗A、
店舗B、・・・・があったとして、それぞれの売上集計などを取る時に役に立つでしょう。

having句は先のgroup句に条件を付けます。
構文は以下になります。
SELECT

カラム名(1) , 集計関数(カラム名(2)), ・・・・ 

FROM テーブル名 

GROUP BY カラム名(1) 

HAVING カラム名(1) 条件

以下のSQLを実行して下さい。
SELECT
  top_on_flug,
  sum(kakaku)
FROM
  shouhin_t
GROUP BY
  top_on_flug
HAVING
  top_on_flug = 'on'

「on」だけを指定した結果になります。



先ほどは店舗の売上集計の例を出しましたが、having句を使えば指定した店舗だけを集計することができます。


戻る

Copyright (c) 2007 MSweb All Rights Reserved

腕時計 クロノグラフ(時計)のメンズ専門販売サイトカシオ G-SHOCK、Baby-G(腕時計)専門の通信販売サイトG-SHOCK、Baby-G専門通販サイト 運営ブログ

腕時計 女性専用 販売のladies-watch.biz腕時計 メンズ(男性)専門販売のmens-watch.biz