2010年6月6日日曜日

OracleでGroup By時にCSV形式で文字連結

 OracleでGroup Byした際、文字列もカンマ区切りで一行に入れて返す方法を見つけました。
ユーザー定義関数を作ったり面倒そうなのは嫌なのでSQLだけで出来る単純な方法です。

結果
GROUP_KEY  STRING
---------- ----------------------------------
Group 1    a
Group 2    a,b
Group 3    a,b,c
Group 4    a,b
Group 5    a,b,d,e
Group 8    a,b

コード
SELECT
  GROUP_KEY ,
  LTRIM
    ( EXTRACT
      ( XMLAGG
        ( XMLELEMENT( "V", ',' || VAL )
        ORDER BY VAL
      ),
      '/V/text()'
    ) ,
    ','
  ) AS STRING
FROM
  ( SELECT DISTINCT
      GROUP_KEY, VAL        -- PRODUCES DISTINCT VALUES
    FROM   T
    WHERE  VAL IS NOT NULL  -- FILTERS OUR NULL VALUES
  ) TB
GROUP BY
  GROUP_KEY

データ
GROUP_KEY  VAL
---------- ----------
Group 1    a
Group 2    a
Group 2    b
Group 3    a
Group 3    b
Group 3    c
Group 4    a
Group 4    a
Group 4    b
Group 4    b
Group 5    a
Group 5    b
Group 5    d
Group 5    e
Group 5    (null)
Group 6    (null)
Group 7    (null)
Group 7    (null)
Group 8    a
Group 8    a
Group 8    b
Group 8    b
Group 8    (null)
Group 8    (null)

参考にしたのは以下のサイトです。
http://www.sqlsnippets.com/en/topic-11785.html

2010年2月21日日曜日

インストールせずにMoodle

下記は2010年に書いた内容です。
今のおすすめはBitnamiでMySQL, Apache, PHPも一括インストールするのが簡単です。

***************************************************************************************************************
 予定を変更してMoodleの話です。
Moodleとはインターネットを使った教育コースやウェブサイトを作成・管理する
オープンソースソフトです。 世界中の大学で使われているとの触れ込みです。
ユーザー数は3200万人を超え、80ヶ国語に翻訳されています。
資料を公開したり、課題を与えたり、調査、アンケート、小テストなどか
比較的簡単に設定出来ます。

と、言う訳で使ってみないと良く分からない性格なので一番簡単な
Windows版のインストールが不要なバージョンを使ってみましょう。
USBに入れると何時でも何処でもMoodleを試す事が出来ます。

1 先ずは必要なファイルをダウンロードします。 本体だけです。
  1.9.7+が本日の最新版です。 Windows, Mac OS X以外の場合は
  Moodle以外にMySQL, Apache, PHPをインストールする必要があります。
2 適当な場所に展開します。
3 展開したMoodleWindowsInstaller-latest-19.zipの中の
  Start Moodle.exeをダブルクリック。
  ここで開かれたウインドウを閉じないで下さい。
  停止する場合はStop Moodle.exeをダブルクリックして下さい。
  勝手に閉じる場合は他のソフト(Apacheとか)が邪魔をしているか
  msvcr71.dllが無い場合だそうだ。 msvcr71.dllは.NET 1.1を入れるか
  Goodle先生に聞きましょう。

4 Webブラウザのアドレスにlocalhostと入力する。
5 日本語に変更する。
6 次へを押すと必要なソフトが揃っているか確認してくれる。
7 「次へ」を押すとインストール先を設定する。 面倒なのでそのまま「次へ」
8 パスワードを入力する。 ここは面倒でもPassword以外のパスワードを
  入力しましょう。
9 もう一度、設定を確認してくれます。
10 日本語パックをダウンロードする、、、と何故か失敗するので「次へ」
11 完了を押す。12 ライセンス条項を読む。
13 面倒なので「Unattended operation」にチェックを入れて、「次へ」、、、
   物凄く待たされますので気長に待ちましょう。
14 管理者のユーザー名、パスワード、e-mailと町(town)などを入力し、
   「Update Profile」を押す。 パスワードは8文字以上で数字、大文字、
   小文字、記号を最低1文字入れる必要があります。
15 次にホームページを設定すれば完了!
16 日本語を入れる為に「Language」の「Language packs」を選ぶ。
17 日本語を選択して「Install selected language pack」を押す。
18 ホームページから「Language」の「Language setting」を選ぶ。
19 Default Languageを日本語に変更する。

後は色々と試して下さい。

2010年2月14日日曜日

Oracle XE

無料で動かせるOracleデータベースです。
My SQL, DB2フリー版(Express-C)、MS SQL Serverフリー版(Express Edition)もある中での利点は
  • 商用Oracleと完全互換 開発環境や勉強に最適です。
  • 何と言ってもOracle 予算が無いがオープンソースが許され無い場合に説得しやすい。
  • 開発環境だけで無く、生産環境にも使用が許可されている。
  • Linuxだけで無くサーバーで無いWindowsでも動く。 つまり家のPCでも勉強出来るんです。SolarisやMacもあったら最高なんですけど。
  • 後で紹介するApplication Expressが標準で付いて来る。 Application Expressのバージョンアップも容易。

 インストール手順なんかも書こうかと思ったりもしますが、既に多数公開されているので余り意味無さそうなので気が向くまで書きません。

参考

Ubuntuの問題、、、

え〜、もちろん問題もありまして、、、
 ・やっぱりWindowsやMacと比べたら難しいです。
 ・半年に一回のバージョンアップに毎回付き合えない。
  しかもバージョンアップ直後はバグが多いらしい。
  長期保証バージョン(LTS)はバグが少なくて、その直前のバージョンは
  バグが多いとか。
 ・標準ではDVD再生などがインストールされていない
  まー、無料で手に入るのでインストールすれば良いのですが面倒
 ・9.10 Sever版で簡単にクラウド構築可能な筈がIntel VT-xかAMD-Vが
  必要。 古いPCで試してみたかったのに使えない!

他は良く知りませんけどLinuxとして不満は無いですね。
手間が嫌なら頻繁にバージョンアップしなければ良いだけですし。

2010年2月13日土曜日

自由だ!

主に日本語の情報が少ないオープンソースソフトウェアについての取っ掛かりとなるような情報を綴って行く予定です。

取り上げるかも知れないソフトウェア
  • Ubuntu 人気急上昇中のLinuxディストリビューション
  • JBoss Tools/Seam 簡単にJavaを使った業務Webアプリが作成出来る
  • Oracle XE あのOracleデータベースのフリー板
  • Oracle Application Express Webから非常に簡単にデータベースアプリを作成
  • Pentaho BI データ統合(ETL)、レポート、OLAP分析、マイニングなどなど