58 lines
1.6 KiB
SQL
58 lines
1.6 KiB
SQL
-- name: GetTotalMontlyEventStat :many
|
|
SELECT DATE_TRUNC('month', start_time) AS month,
|
|
COUNT(*) AS event_count
|
|
FROM events
|
|
JOIN leagues ON leagues.id = events.league_id
|
|
WHERE (
|
|
events.league_id = sqlc.narg('league_id')
|
|
OR sqlc.narg('league_id') IS NULL
|
|
)
|
|
GROUP BY month
|
|
ORDER BY month;
|
|
-- name: GetLeagueEventStat :many
|
|
SELECT leagues.id,
|
|
leagues.name,
|
|
COUNT(*) AS total_events,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'pending'
|
|
) AS pending,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'in_play'
|
|
) AS in_play,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'to_be_fixed'
|
|
) AS to_be_fixed,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'ended'
|
|
) AS ended,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'postponed'
|
|
) AS postponed,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'cancelled'
|
|
) AS cancelled,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'walkover'
|
|
) AS walkover,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'interrupted'
|
|
) AS interrupted,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'abandoned'
|
|
) AS abandoned,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'retired'
|
|
) AS retired,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'suspended'
|
|
) AS suspended,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'decided_by_fa'
|
|
) AS decided_by_fa,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'removed'
|
|
) AS removed
|
|
FROM leagues
|
|
JOIN events ON leagues.id = events.league_id
|
|
GROUP BY leagues.id,
|
|
leagues.name; |