2012-11-20 30 views
0

問題如下:計數字符輸入一個表格,Postgres數據庫

有一個傳統的內部網應用程序,基本上是一堆web表單。 服務它的數據庫是Postgres。 該應用程序被記錄(很差,但記錄),所以我或多或少知道哪些行和列涉及什麼。

我想要的是能夠統計在Web窗體的文本字段中輸入的所有人類可讀字符(包括空格鍵)(基本上相當於Openoffice Writer/MS Word的統計功能,但只有字符計數,不需要計數字)

文本字段的值散佈在多個表中。

使用場景:

有一堆文本,它必須被輸送到通過網絡形式的數據庫,現在是手寫的。 一個人會來,並輸入它。 人將支付每個字符。

所以我們的想法是在白天從數據庫中進行「字符計數」,然後在工作日之後再進行「字符計數」。從後者中減去前者,然後向打字員付款。

在給定時間內不會有一個以上的打字員工作,因此確定由誰來負責給定新字符並不是必需的。

回答

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 
相關問題