[PHP-users 9907] Re: 改行区切りのテキストデーターの集計方法

Naomasa Numajiri php-users@php.gr.jp
Sun, 08 Sep 2002 22:25:04 +0900


こんばんは

; 田中と言います。今日は日曜日なので、一日PCの前にいます。
---中略---
; ひとつのカラムに改行区切りでアンケートのデーターが入っています。
; 例えば、ひとつの設問に3つの選択肢があり2番目のラジオボックスに
; チェックがついていたとしたら
; 
; 0
; 1
; 0

僕なら、処理が簡単になるための手段として、テーブル定義自体の変更
も視野に入れます。

例えば
* 選択肢の上限を決めておき、その数だけカラムを用意する。
* 各ラジオボックスとカラムを対応させて、各カラムに「0」「1」を
  設定する。対応するラジオボックスがないカラムはNULLを入れる
というふうに。こうすればPostgreSQLの集計関数が使えますよね?

すでに稼動してしまっているなら、
	alter table table_name add column
	(手元にリファレンスがないですが、こんな構文ですよね?)
として、前処理として
	update the_table
	   set column_of_radiobox1 = sql_function(column_of_all_radioboxes,1),
	       column_of_radiobox2 = sql_function(column_of_all_radioboxes,2),
               ....
 	       column_of_radioboxN = sql_function(column_of_all_radioboxes,N)
	 where the_condition_for_the_records;
	(注:擬似コードです)
とかすればいいのでは?(リアルタイムにやっているならトリガーに仕込むとか)

一例として

-- ぬ

p.s.
; 実際に集計するスマートな方法が考えつかず、困っています。
スマートでなくてもいいので、考えた処理内容を書いた上で「このような
コードを書いたのですが、もっとスマートな方法があるんじゃないかと
思っています」の方がアドバイスは得やすいと思います。