diff --git a/backend/db/Dockerfile b/backend/db/Dockerfile index 880b4f2..c742e53 100644 --- a/backend/db/Dockerfile +++ b/backend/db/Dockerfile @@ -1,3 +1,3 @@ FROM postgres:15-alpine -COPY createSchema.sql /docker-entrypoint-initdb.d/createSchema.sql \ No newline at end of file +COPY initScripts/* /docker-entrypoint-initdb.d/ \ No newline at end of file diff --git a/backend/db/createSchema.sql b/backend/db/initScripts/_createSchema.sql similarity index 56% rename from backend/db/createSchema.sql rename to backend/db/initScripts/_createSchema.sql index 9d802a8..ee4cb61 100644 --- a/backend/db/createSchema.sql +++ b/backend/db/initScripts/_createSchema.sql @@ -24,17 +24,9 @@ CREATE VIEW user_data AS ( ); CREATE VIEW lb_highscore AS ( - SELECT username, max(score) AS highscore FROM game GROUP BY username ORDER BY highscore DESC -); - -CREATE VIEW lb_total_score AS ( - SELECT username, sum(score) AS total_score FROM game GROUP BY username ORDER BY total_score DESC + SELECT row_number() OVER (ORDER BY max(score) DESC) AS rank, username, max(score) AS highscore FROM game GROUP BY username ORDER BY rank ); CREATE VIEW lb_total_playtime AS ( - SELECT username, sum(playtime) AS total_playtime FROM game GROUP BY username ORDER BY total_playtime DESC + SELECT row_number() OVER (ORDER BY sum(playtime) DESC) AS rank, username, sum(playtime) AS total_playtime FROM game GROUP BY username ORDER BY rank ); - -CREATE VIEW lb_average_score AS ( - SELECT username, avg(score) AS average_score FROM game GROUP BY username ORDER BY average_score DESC -); \ No newline at end of file diff --git a/backend/db/initScripts/loadMockData.sql b/backend/db/initScripts/loadMockData.sql new file mode 100644 index 0000000..b6c2676 --- /dev/null +++ b/backend/db/initScripts/loadMockData.sql @@ -0,0 +1,41 @@ +insert into "user" (username) values ('dpettus0'); +insert into "user" (username) values ('egreetland1'); +insert into "user" (username) values ('smontford2'); +insert into "user" (username) values ('idagwell3'); +insert into "user" (username) values ('lgagan4'); +insert into "user" (username) values ('acarmont5'); +insert into "user" (username) values ('kjermyn6'); +insert into "user" (username) values ('dokieran7'); +insert into "user" (username) values ('pdrinkel8'); +insert into "user" (username) values ('amelladew9'); + +insert into game (username, score, playtime, date) values ('dpettus0', 74, '19:59', '2022-07-19'); +insert into game (username, score, playtime, date) values ('dpettus0', 86, '20:32', '2022-11-24'); +insert into game (username, score, playtime, date) values ('dpettus0', 68, '10:41', '2022-03-24'); +insert into game (username, score, playtime, date) values ('egreetland1', 39, '5:55', '2022-06-01'); +insert into game (username, score, playtime, date) values ('egreetland1', 20, '9:23', '2022-03-12'); +insert into game (username, score, playtime, date) values ('egreetland1', 28, '23:45', '2022-04-01'); +insert into game (username, score, playtime, date) values ('smontford2', 44, '18:43', '2022-06-24'); +insert into game (username, score, playtime, date) values ('smontford2', 92, '14:54', '2022-11-06'); +insert into game (username, score, playtime, date) values ('smontford2', 73, '0:45', '2022-07-26'); +insert into game (username, score, playtime, date) values ('idagwell3', 27, '2:49', '2022-02-03'); +insert into game (username, score, playtime, date) values ('idagwell3', 26, '2:32', '2022-07-19'); +insert into game (username, score, playtime, date) values ('idagwell3', 12, '17:03', '2022-04-25'); +insert into game (username, score, playtime, date) values ('lgagan4', 6, '8:49', '2021-12-03'); +insert into game (username, score, playtime, date) values ('lgagan4', 22, '22:27', '2022-03-02'); +insert into game (username, score, playtime, date) values ('lgagan4', 94, '1:04', '2022-10-19'); +insert into game (username, score, playtime, date) values ('acarmont5', 2, '2:14', '2022-04-06'); +insert into game (username, score, playtime, date) values ('acarmont5', 21, '17:18', '2022-06-03'); +insert into game (username, score, playtime, date) values ('acarmont5', 33, '16:01', '2022-02-02'); +insert into game (username, score, playtime, date) values ('kjermyn6', 27, '7:03', '2022-02-06'); +insert into game (username, score, playtime, date) values ('kjermyn6', 62, '0:45', '2022-11-15'); +insert into game (username, score, playtime, date) values ('kjermyn6', 12, '8:54', '2022-06-29'); +insert into game (username, score, playtime, date) values ('dokieran7', 63, '16:01', '2022-11-05'); +insert into game (username, score, playtime, date) values ('dokieran7', 29, '0:46', '2022-10-01'); +insert into game (username, score, playtime, date) values ('dokieran7', 67, '1:27', '2022-09-29'); +insert into game (username, score, playtime, date) values ('pdrinkel8', 84, '10:37', '2021-12-18'); +insert into game (username, score, playtime, date) values ('pdrinkel8', 14, '19:14', '2022-01-31'); +insert into game (username, score, playtime, date) values ('pdrinkel8', 21, '19:04', '2022-03-08'); +insert into game (username, score, playtime, date) values ('amelladew9', 46, '2:34', '2022-04-18'); +insert into game (username, score, playtime, date) values ('amelladew9', 78, '9:33', '2022-09-10'); +insert into game (username, score, playtime, date) values ('amelladew9', 82, '11:19', '2022-11-29'); \ No newline at end of file