PostgreSQL8.1.4を再インストール

  1. postgresql-8.1-ja.msi
  2. PostgreSQL インストールウィザードへようこそ
    1. 次へ
  3. インストールの注意事項
    1. 次へ
  4. インストールオプション
    1. 次へ
  5. サービス構成
    1. サービスのインストールにチェック
    2. サービス名:PostgreSQL Database Server 8.1
    3. アカウント名:postgres
    4. ドメイン名:XXXXXX
    5. パスワード:XXXXXX
    6. パスワードの確認:XXXXXX
    7. 次へ
  6. ユーザー \postgres を見つけることは出来ませんでした。自動的に作り出しますか?
    1. はい
  7. あなたが明示したパスワードは、弱いように見えます。インストーラーに、それをランダムなパスワードと取り替えますか?
    1. いいえ
  8. データベースクラスタの初期化
    1. データベースクラスタの初期化にチェック
    2. ポート番号:5432
    3. アドレス:すべてのアドレスでコネクションを受け入れる(ただのlocalhostではなく)にはチェックしない
    4. ロケール:C
    5. エンコーディングEUC_JP
    6. スーパーユーザ名:postgres
    7. パスワード:XXXXXX
    8. パスワードの確認:XXXXXX
  9. 手続き言語を可能にする
    1. PL/pgsqlにチェック
  10. 貢献モジュールを可能にする
    1. Admin81 - 改良された機能を提供するためにpgAdminによって使われますにチェック
  11. インストールは完了しました
    1. 終わる
  12. サービスの停止
    1. コンピュータの管理
    2. PostgreSQL Database Server 8.1
    3. スタートアップの種類:自動→手動
    4. OK
  13. サービスの手動起動
    1. スタート メニュー\プログラム\PostgreSQL 8.1\サービスの起動
  14. pgAdminⅢ起動
    1. スタート メニュー\プログラム\PostgreSQL 8.1\pgAdmin III
    2. 左側ペインの PostgreSQL Database Server 8.1 (localhost:5432) を右クリックし、接続
    3. パスワードを入力
  15. データベースの新規作成
    1. データベースを右クリック
    2. 新しいデータベース
      1. 名前:shop
      2. OID:
      3. オーナー:postgres
      4. エンコーディングEUC_JP
      5. Template:
      6. テーブル空間
      7. コメント:
    3. OK
  16. テーブルとデータの作成
    1. shopを選択
    2. [ツール]-[クエリーツール]
    3. 上記DDLとINSERT分をコピーペースト
    4. [クエリー]-[実行](F5)
    5. [編集]-[ウィンドウクリア]

NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_shohin" for table "商品マスタ"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_tanto" for table "担当者マスタ"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_kokyaku" for table "顧客マスタ"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_data" for table "受注データ"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_meisai" for table "受注明細"

クエリーは、1502 で結果なしでうまく帰りました。

ログイン

cd C:\PostgreSQL\8.1\bin
C:\PostgreSQL\8.1\bin>psql -U postgres shop
Password for user postgres:
Welcome to psql 8.1.4, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

並べ替える

顧客マスタから顧客の名前とフリガナを50音順に並び替える

shop=# SELECT
shop-# 名前
shop-# , フリガナ
shop-# FROM
shop-# 顧客マスタ
shop-# ORDER BY フリガナ ASC
shop-# ;
名前 | フリガナ

                                    • -

川口 | カワグチ
高原 | タカハラ
玉田 | タマダ
中澤 | ナカザワ
中田 | ナカタ
中村 | ナカムラ
宮本 | ミヤモト
柳沢 | ヤナギサワ
(8 rows)

今度はちゃんと昇順にソートしている。OK!

shop=# SELECT
shop-# 名前
shop-# , フリガナ
shop-# FROM
shop-# 顧客マスタ
shop-# ORDER BY フリガナ DESC
shop-# ;
名前 | フリガナ

                                    • -

柳沢 | ヤナギサワ
宮本 | ミヤモト
中村 | ナカムラ
中田 | ナカタ
中澤 | ナカザワ
玉田 | タマダ
高原 | タカハラ
川口 | カワグチ
(8 rows)

降順もOK
しかし、

shop=# SELECT
shop-# グループ名
shop-# , COUNT(*)
shop-# , SUM(在庫数)
shop-# FROM
shop-# 商品マスタ
shop-# GROUP BY
shop-# グループ名
shop-# ;
グループ名 | count | sum

                                                                  • -

サポーターズウェア | 2 | 30
ボール | 3 | 21
レプリカグッズ | 2 | 7
サポーターズグッズ | 5 | 72
(4 rows)

GROUP BY は駄目だ・・・
追記:

  • 訂正します!
  • 正しくグループ化していますので正常です。
  • 並び順はORDER BYを指定しないといけません
PostgreSQL Windows版のバグ?
http://d.hatena.ne.jp/miyasnet/20050418#p1

Windows版のPostgreSQL8.1.4で、日本語の列をGROUP BYすると正しく動作しない。これはバグなのかなぁ・・
すみません、上記記述を訂正します。
GROUP BY によって正常にグループ化されます。並び順はORDER BYで指定すればいいのでした。