reporter.demographic (view)
|
This is a database view, not a base table. It has no triggers, indexes, or FK constraints of its own. Querying this view may be more efficient than joining the underlying tables directly. |
Columns
| Column | Type | Nullable | Notes |
|---|---|---|---|
id |
|
Yes |
|
dob |
|
Yes |
|
general_division |
|
Yes |
|
age_division |
|
Yes |
View Definition
SELECT u.id,
u.dob,
CASE
WHEN u.dob IS NULL THEN 'Adult'::text
WHEN age(u.dob::timestamp with time zone) > '18 years'::interval THEN 'Adult'::text
ELSE 'Juvenile'::text
END AS general_division,
CASE
WHEN u.dob IS NULL THEN 'No Date of Birth Entered'::text
WHEN age(u.dob::timestamp with time zone) >= '00:00:00'::interval AND age(u.dob::timestamp with time zone) < '6 years'::interval THEN 'Child 0-5 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '6 years'::interval AND age(u.dob::timestamp with time zone) < '13 years'::interval THEN 'Child 6-12 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '13 years'::interval AND age(u.dob::timestamp with time zone) < '18 years'::interval THEN 'Teen 13-17 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '18 years'::interval AND age(u.dob::timestamp with time zone) < '26 years'::interval THEN 'Adult 18-25 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '26 years'::interval AND age(u.dob::timestamp with time zone) < '50 years'::interval THEN 'Adult 26-49 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '50 years'::interval AND age(u.dob::timestamp with time zone) < '60 years'::interval THEN 'Adult 50-59 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '60 years'::interval AND age(u.dob::timestamp with time zone) < '70 years'::interval THEN 'Adult 60-69 Years Old'::text
WHEN age(u.dob::timestamp with time zone) >= '70 years'::interval THEN 'Adult 70+'::text
ELSE NULL::text
END AS age_division
FROM actor.usr u;