api.moorages_view
Description
Moorages listing web view
Table Definition
CREATE VIEW moorages_view AS (
SELECT m.id,
m.name AS moorage,
sa.description AS default_stay,
sa.stay_code AS default_stay_id,
COALESCE(count(DISTINCT l.id), (0)::bigint) AS arrivals_departures,
COALESCE(sum(DISTINCT s.duration), 'PT0S'::interval) AS total_duration
FROM (((api.moorages m
JOIN api.stays_at sa ON ((m.stay_code = sa.stay_code)))
LEFT JOIN api.stays s ON (((m.id = s.moorage_id) AND (s.active = false))))
LEFT JOIN api.logbook l ON (((m.id = l._from_moorage_id) OR ((m.id = l._to_moorage_id) AND (l.active = false)))))
WHERE ((m.geog IS NOT NULL) AND (m.stay_code = sa.stay_code))
GROUP BY m.id, m.name, sa.description, sa.stay_code
ORDER BY COALESCE(sum(DISTINCT s.duration), 'PT0S'::interval) DESC
)
Columns
| Name | Type | Default | Nullable |
|---|---|---|---|
| arrivals_departures | bigint | true | |
| default_stay | text | true | |
| default_stay_id | integer | true | |
| id | integer | true | |
| moorage | text | true | |
| total_duration | interval | true |
Referenced Tables
| Name | Columns | Comment | Type |
|---|---|---|---|
| api.moorages | 13 | Stores generated moorages | BASE TABLE |
| api.stays_at | 2 | Stay Type | BASE TABLE |
| api.stays | 14 | Stores generated stays | BASE TABLE |
| api.logbook | 42 | Stores generated logbook | BASE TABLE |
Relations
erDiagram
"api.moorages_view" {
bigint arrivals_departures ""
text default_stay ""
integer default_stay_id ""
integer id ""
text moorage ""
interval total_duration ""
}
Generated by tbls