LP#1549505: fix *_over_time calculations
authorGalen Charlton <gmc@esilibrary.com>
Fri, 25 Mar 2016 18:02:04 +0000 (14:02 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Fri, 25 Mar 2016 18:02:04 +0000 (14:02 -0400)
Use the age of an event, not its interval from the
beginning of computer time, for the following
popularity parameters:

* holds_filled_over_time
* holds_placed_over_time
* circs_over_time

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql

index b18f002..1385d45 100644 (file)
@@ -550,7 +550,7 @@ BEGIN
             SUM( holds * GREATEST( iscale * (iage - hage), 1.0 ))
       FROM (
          SELECT f.id AS bib,
-                (1 + EXTRACT(EPOCH FROM h.fulfillment_time) / iint)::INT AS hage,
+                (1 + EXTRACT(EPOCH FROM AGE(h.fulfillment_time)) / iint)::INT AS hage,
                 COUNT(h.id)::INT AS holds
           FROM  action.hold_request h
                 JOIN reporter.hold_request_record rhrr ON (rhrr.id = h.id)
@@ -602,7 +602,7 @@ BEGIN
             SUM( holds * GREATEST( iscale * (iage - hage), 1.0 ))
       FROM (
          SELECT f.id AS bib,
-                (1 + EXTRACT(EPOCH FROM h.fulfillment_time) / iint)::INT AS hage,
+                (1 + EXTRACT(EPOCH FROM AGE(h.fulfillment_time)) / iint)::INT AS hage,
                 COUNT(h.id)::INT AS holds
           FROM  action.hold_request h
                 JOIN reporter.hold_request_record rhrr ON (rhrr.id = h.id)
@@ -685,7 +685,7 @@ BEGIN
             SUM( circs * GREATEST( iscale * (iage - cage), 1.0 ))
       FROM (
          SELECT cn.record AS bib,
-                (1 + EXTRACT(EPOCH FROM c.xact_start) / iint)::INT AS cage,
+                (1 + EXTRACT(EPOCH FROM AGE(c.xact_start)) / iint)::INT AS cage,
                 COUNT(c.id)::INT AS circs
           FROM  action.circulation c
                 JOIN asset.copy cp ON (cp.id = c.target_copy)