计算在表格中输入的字符,Postgres数据库

时间:2012-11-20 05:59:42

标签: postgresql text count nlp character

问题如下:

有一个传统的Intranet应用程序,基本上是一堆Web表单。 服务它的DB是Postgres。 该应用程序已记录(很差,但有文档记录),所以我或多或少知道哪些行和列涉及什么。

我想要的是能够计算在网络表单的文本字段中输入的所有人类可读字符(包括空格键)(基本上,相当于Openoffice Writer的/ MS Word的统计功能,但仅限于字符数。计算不需要的单词)

文本字段的值散布在几个表中。

使用场景:

有许多文本必须通过网络表单提供给该数据库,现在是手写的。 一个人会来输入它。 人将按每个角色付费。

所以我的想法是在开始时从数据库中执行“字符计数”,然后在工作日之后执行“字符计数”。从后者中减去前者并向打字员支付到期款。

在给定时间内只会有一名打字员工作,因此不需要确定谁负责给定新字符。

1 个答案:

答案 0 :(得分: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)个查询合并为一个:

select sum(length(C1)) + sum(length(C2)) + ... + sum(length(CN)) as count from TN