- Introduced EventWithSettings and EventWithSettingsRes structs for enhanced event data handling. - Implemented conversion functions for creating and updating event settings. - Added support for fetching events with settings from the database. - Created new report data structures for comprehensive reporting capabilities. - Implemented event statistics retrieval and filtering by league and sport. - Added handlers for event statistics endpoints in the web server. - Introduced DateInterval type for managing time intervals in reports.
47 lines
1.3 KiB
SQL
47 lines
1.3 KiB
SQL
-- name: GetLeagueEventStat :many
|
|
SELECT leagues.id,
|
|
leagues.name,
|
|
COUNT(*) AS total_events,
|
|
COUNT(*) FILTER (
|
|
WHERE events.status = 'upcoming'
|
|
) 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; |