summaryrefslogtreecommitdiff
path: root/queries/participant/stats.sql
blob: fe4025f80555fa91a48cf1c9499b4ae8da4099e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
WITH stats AS (
    SELECT
        participant.api_id,
        match.patch_version,
        CASE WHEN roster.hero_kills=0
        THEN 0
        ELSE (kills+assists)/roster.hero_kills::float
        END AS kills_participation,
        CASE WHEN participant.deaths=0
        THEN 0
        ELSE (kills+assists)/deaths::float
        END AS kda
    FROM participant
    JOIN roster ON roster.api_id=participant.roster_api_id
    JOIN match ON match.api_id=roster.match_api_id
    WHERE participant.api_id = $1
)
INSERT INTO participant_stats(participant_api_id, patch_version, kills_participation, kda)
SELECT * FROM stats
ON CONFLICT(participant_api_id) DO
UPDATE SET(participant_api_id, patch_version, kills_participation, kda) = (SELECT * FROM stats)