0

問題は次のとおりです。

基本的に、一連のWebフォームであるレガシーイントラネットアプリがあります。それを提供するDBはPostgresです。アプリは文書化されています(不十分ですが、文書化されています)ので、私は多かれ少なかれ、どの行と列が何に関係しているのかを知っています。

私が欲しいのは、Webフォームのテキストフィールドに入力されたすべての人間が読める文字(スペースバーを含む)をカウントできるようにすることです(基本的に、Openoffice Writer / MS Wordの統計機能と同等の機能を実行しますが、文字数のみを使用します。不要な単語を数える)

テキストフィールドの値は、いくつかのテーブルに散らばっています。

シナリオの使用:

Webフォームを介してそのDBにフィードする必要のあるテキストがたくさんあり、現在は手書きになっています。人が来て入力します。人はキャラクターごとに支払われます。

したがって、アイデアは、一日の初めにDBから「文字カウント」を実行し、就業日の後に「文字カウント」を実行することです。後者から前者を引き、タイピストに支払いをします。

一度に作業するタイピストは1人だけなので、特定の新しいキャラクターの責任者を決定する必要はありません。

4

1 に答える 1

2

基本的に、次のようなクエリが必要です。

select sum(count) from (
  (select sum(length(C1)) as count from T1)
  union all
  (select sum(length(C2)) as count from T2)
  union all
  ...
  (select sum(length(CN)) as count from T3)
) as x

ここで、C1、...、CNおよびT1、...、TNは、それぞれ列名とテーブル名です。

テーブルXに複数のテキスト列がある場合は、複数の(select sum(length(CX)) from TX)クエリを1つにマージできます。

select sum(length(C1)) + sum(length(C2)) + ... + sum(length(CN)) as count from TN
于 2012-11-20T08:02:46.110 に答える