0

问题如下:

有一个遗留的 Intranet 应用程序,基本上就是一堆 Web 表单。为它服务的数据库是 Postgres。该应用程序已记录(记录不佳,但已记录),因此我或多或少知道哪些行和列涉及哪些内容。

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

文本字段的值分布在多个表中。

使用场景:

有一堆文本必须通过网络表单输入到该数据库,现在是手写的。一个人会来输入它。这个人将按字符付费。

所以想法是在一天开始时从数据库中进行“字符计数”,然后在工作日之后进行“字符计数”。从后者中减去前者,并支付打字员应得的费用。

在给定的时间不会有超过一个打字员工作,因此不需要确定谁负责给定的新字符。

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)查询合并为一个:

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