egdb3_11_7
.rating
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
checked_out_total_ratio(badge_id integer)
Parameters
Name
Type
Mode
badge_id
integer
IN
record
bigint
TABLE
value
numeric
TABLE
Definition
DECLARE badge rating.badge_with_orgs%ROWTYPE; BEGIN SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id; PERFORM rating.precalc_bibs_by_copy(badge_id); DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN ( SELECT id FROM precalc_filter_bib_list INTERSECT SELECT id FROM precalc_bibs_by_copy_list ); ANALYZE precalc_copy_filter_bib_list; RETURN QUERY SELECT bib, SUM(checked_out)::NUMERIC / SUM(total)::NUMERIC FROM (SELECT cn.record AS bib, (cp.status = 1)::INT AS checked_out, 1 AS total FROM asset.copy cp JOIN precalc_copy_filter_bib_list c ON (cp.id = c.copy) JOIN asset.call_number cn ON (cn.id = cp.call_number) WHERE cn.owning_lib = ANY (badge.orgs) ) x GROUP BY 1; END;