+---------------+---------+
| Column Name | Type |
+---------------+---------+
| player_name | varchar |
| gender | varchar |
| day | date |
| score_points | int |
+---------------+---------+
(gender, day) is the primary key (combination of columns with unique values) for this table.
A competition is held between the female team and the male team.
Each row of this table indicates that a player_name and with gender has scored score_point in someday.
Gender is 'F' if the player is in the female team and 'M' if the player is in the male team.
Write a solution to find the total score for each gender on each day.
Return the result table ordered by gender and day in ascending order.
Input:
Scores table:+-------------+--------+------------+--------------+| player_name | gender | day | score_points |+-------------+--------+------------+--------------+| Aron | F |2020-01-01|17|| Alice | F |2020-01-07|23|| Bajrang | M |2020-01-07|7|| Khali | M |2019-12-25|11|| Slaman | M |2019-12-30|13|| Joe | M |2019-12-31|3|| Jose | M |2019-12-18|2|| Priya | F |2019-12-31|23|| Priyanka | F |2019-12-30|17|+-------------+--------+------------+--------------+Output:
+--------+------------+-------+| gender | day | total |+--------+------------+-------+| F |2019-12-30|17|| F |2019-12-31|40|| F |2020-01-01|57|| F |2020-01-07|80|| M |2019-12-18|2|| M |2019-12-25|13|| M |2019-12-30|26|| M |2019-12-31|29|| M |2020-01-07|36|+--------+------------+-------+Explanation:
For the female team:The first day is2019-12-30, Priyanka scored 17 points and the total score for the team is17.The second day is2019-12-31, Priya scored 23 points and the total score for the team is40.The third day is2020-01-01, Aron scored 17 points and the total score for the team is57.The fourth day is2020-01-07, Alice scored 23 points and the total score for the team is80.For the male team:The first day is2019-12-18, Jose scored 2 points and the total score for the team is2.The second day is2019-12-25, Khali scored 11 points and the total score for the team is13.The third day is2019-12-30, Slaman scored 13 points and the total score for the team is26.The fourth day is2019-12-31, Joe scored 3 points and the total score for the team is29.The fifth day is2020-01-07, Bajrang scored 7 points and the total score for the team is36.
SELECT gender, day,
SUM(score_points) OVER (PARTITION BY gender ORDERBYdayROWSBETWEEN UNBOUNDED PRECEDING ANDCURRENTROW) AS total
FROM Scores
ORDERBY gender ASC, dayASC;
1
2
3
4
SELECT gender, day,
SUM(score_points) OVER (PARTITION BY gender ORDERBYdayROWSBETWEEN UNBOUNDED PRECEDING ANDCURRENTROW) AS total
FROM Scores
ORDERBY gender ASC, dayASC;
1
2
3
4
5
6
7
# Scores is a pandas DataFrameimport pandas as pd
defrunning_total_for_genders(Scores):
Scores = Scores.sort_values(['gender', 'day'])
Scores['total'] = Scores.groupby('gender')['score_points'].cumsum()
return Scores[['gender', 'day', 'total']]
# result = running_total_for_genders(Scores)