-
I decided to create this repository to display my relational database, consisting of my PlayStation video game collection.
- I have earned a Higher Diploma in Data Analytics from ATU Galway, along with the IT Specialist Certificate in Databases from Pearson Vue.
- Both courses involved the study of database management, as well as web application design.
-
I am also currently studying to complete a Continuing Professional Development (CPD) course in Data Analysis for Professionals from TU Dublin.
- A Continuing Professional Development (CPD) course for students is a structured, often accredited, learning activity designed to enhance specific skills, knowledge, and competence in a professional context.
- Unlike a full academic degree, CPD courses are typically shorter, flexible, and focused on practical application to help students bridge the gap between academic knowledge and workplace requirements.
- This CPD course involves statistical analysis and data visualisation, and I wish to implement these into the database.
-
I thought of my video game collection as the perfect example of implementing my learnings from the above courses.
- I have set up a local Transact-SQL database via Microsoft SQL Server 2014.
- The following data compilation was carried out, in order to discover insights in relation to various matters, such as the pricing & purchasing of games:
- Video game receipts issued to my Gmail account at times of purchase.
- Raw data entered & compiled in Google Sheets files.
- Processed data to be added to the database via Microsoft SQL Server 2014.
- Forta, B. (2004), Sams Teach Yourself SQL in 10 Minutes, 3rd Edition, Sams Publishing.
- PSPrices is a highly popular third-party price tracking service, used by gamers from 71 regions worldwide to monitor discounts and price history for digital games across several platforms.
- As of February 2026, the site remains a go-to resource for tracking deals on the PlayStation Store, Xbox Store, Nintendo eShop, and Steam.
- Upon signing up for free:
- I decided on 2nd November 2021 to contribute a one-off lifetime payment of approximately €69.99 for PSPrices Pro (until 2nd November 2120).
- This was to show my gratitude to the developers of PSPrices for their brilliant service.
- The Pro features of their website include:
- Priority Notifications: Pro users receive price-drop alerts before free users.
- Ad-Free Experience: Removes all advertisements from the website for a cleaner, faster interface.
- PlayStation Account Sync: Syncs your PlayStation library, wishlist, and trophies directly with your PSPrices account for the duration of your subscription.
- Just pick your favourite games, click Subscribe, and PSPrices will send you an email when the prices of games drop in the sales, as well as upcoming games to watch.
- Join the PSprices community today: https://psprices.com/account/login/
- hoff_jager PSN Game Wishlist - https://psprices.com/wish-list/HQkF82kb
- PSNProfiles is a leading independent database and community hub for tracking PlayStation trophies, statistics, and gaming progress.
- It is widely used by "trophy hunters" to monitor their completion percentages and to compare achievements with others globally.
- Upon signing up for free:
- I decided on 21st September 2020 to contribute a one-off lifetime payment of approximately €10.99 for PSNProfiles Premium.
- This was to show my gratitude to the developers of PSNProfiles for their brilliant service.
- The Premium features of their website include:
- Instant Profile Refresh: Update your trophy list as often as once per minute, compared to the multi-hour wait time for free users.
- Expanded Trophy Cabinet: Display up to 10 games on your profile's showcase cabinet (free users are limited to 3).
- Ad-Free Browsing: Removes all advertisements across the main site and forums for a cleaner, faster interface.
- Profile Customization: Access to a custom background image, profile music, and the ability to change your forum username.
- Social & Forum Perks: Access to a private "Premium Members" forum, the ability to give more "reputation" points daily, and specialized forum badges.
- Automatic Updates: Your profile will automatically refresh even when you aren't logged into the site (every 6 hours).
- Join the PSNProfiles community today: https://psnprofiles.com/account/create
- hoff_jager PSN Gamer Profile - https://psnprofiles.com/hoff_jager
The sub-repository: playstation/statements, contains the following SQL files with queries created in relation to database design & management:
CREATE DATABASE psdb
This creates the database named psdb.
CREATE TABLE dates, finances, origins, platinums, trophies
This creates the tables named Dates, Finances, Origins, Platinums and Trophies.
INSERT INTO Dates.sql
INSERT INTO dates
(game, console, release_date, purchase_date, start_date, finish_date)
VALUES
('Stick it to the Man','PS3','2013-11-19','2026-03-26','2026-03-26','2026-03-26')
INSERT INTO Finances.sql
INSERT INTO finances
(game, console, full_price, paid_price, savings, hours, value)
VALUES
('Stick it to the Man','PS3',7.99,3.99,4.00,1,3.99)
INSERT INTO Origins.sql
INSERT INTO origins
(game, console, developer, country)
VALUES
('Stick it to the Man','PS3','Zoink Games','Sweden')
INSERT INTO Platinums.sql
INSERT INTO platinums
(game, console, completion_date, rarity)
VALUES
('Yakuza 6: The Song of Life','PS4','2026-03-21',3.5)
INSERT INTO Trophies.sql
INSERT INTO trophies
(year, platinum, gold, silver, bronze)
VALUES
(2026,0,0,0,0)
- These SQL files contain all info for data entry into each table.
SELECT FROM All.sql
SELECT d.id, d.game, d.console,
d.release_date, d.purchase_date, d.start_date, d.finish_date,
f.full_price, f.paid_price, f.savings, f.hours, f.value,
o.developer, o.country
FROM finances f
JOIN dates d ON d.id = f.id
JOIN origins o ON o.id = f.id
SELECT FROM Dates.sql
SELECT * FROM dates
SELECT FROM Finances.sql
SELECT * FROM finances
SELECT FROM Origins.sql
SELECT * FROM origins
SELECT FROM Platinums & Trophies.sql
SELECT * FROM platinums
SELECT * FROM trophies
- These SQL files select specific data from the tables.
- The results are then output & saved in XLSX format.
UPDATE Dates.sql
UPDATE dates SET start_date = REPLACE(start_date,'2026-01-05','2026-02-01')
WHERE id = 1105
UPDATE dates SET finish_date = REPLACE(finish_date,'2026-01-05','2026-02-07')
WHERE id = 1105
UPDATE Finances.sql
UPDATE finances SET hours = REPLACE(hours, 1, 22) WHERE id = 1105
UPDATE finances SET value = REPLACE(value, 3.30, 0.15) WHERE id = 1105
UPDATE Origins.sql
UPDATE origins SET developer = REPLACE(developer,'Delphine Software International (DSI Interplay)','Delphine Software International') WHERE ID = 185
UPDATE Platinums.sql
UPDATE platinums SET rarity = REPLACE(rarity, 17.5, 17.6) WHERE ID = 1
UPDATE Trophies.sql
UPDATE trophies SET platinum = REPLACE(platinum, 3, 4) WHERE ID = 18
UPDATE trophies SET gold = REPLACE(gold, 21, 27) WHERE ID = 18
UPDATE trophies SET silver = REPLACE(silver, 17, 27) WHERE ID = 18
UPDATE trophies SET bronze = REPLACE(bronze, 61, 134) WHERE ID = 18
- These SQL files update values within the tables, such as correcting typos & numerical errors (misspelling of developers or prices).
The sub-repository: playstation/output, contains the following XLSX file with tabs, along with a PBIX file for further data visualisations:
This tab stores a number of video games that have/haven’t been released and/or purchased, with the following fields to export to the other tabs in the all_data_MASTER XLSX file:
- ID, Game, Console,
- Release_Date, Purchase_Date, Start_Date, Finish_Date,
- Full_Price, Paid_Price, Savings, Hours, Value,
- Developer, Country
SELECT d.id, d.game, d.console,
d.release_date, d.purchase_date, d.start_date, d.finish_date,
f.full_price, f.paid_price, f.savings, f.hours, f.value,
o.developer, o.country
FROM finances f
JOIN dates d ON d.id = f.id
JOIN origins o ON o.id = f.id
SELECT * FROM dates
ORDER BY release_date, purchase_date ASC
SELECT * FROM dates
WHERE YEAR(release_date) BETWEEN 2020 AND 2026
ORDER BY release_date, purchase_date ASC
SELECT YEAR(release_date) AS Year,
COUNT(*) AS ‘Games’ FROM dates
WHERE YEAR(release_date) BETWEEN 2020 AND 2026
GROUP BY YEAR(release_date)
ORDER BY Year ASC
SELECT FLOOR(YEAR(release_date) / 10) * 10) AS Decade,
COUNT(*) AS ‘Games’ FROM dates
WHERE YEAR(release_date) >= 1990
GROUP BY FLOOR(YEAR(release_date) / 10) * 10)
ORDER BY Decade ASC
SELECT console, COUNT(*) AS ‘Games’
FROM origins
GROUP BY console
ORDER BY COUNT(*) DESC
The total number of video games released per year & per decade:
- The collection consists of a total of 1,178 games, with release dates dating back to 1995.
- The majority of video games in the collection were released in the 2010’s and 2020’s.
- Both decades account for 80% (946/1,178; 4/5) of the collection:
- The 2010’s account for 53% (624/1,178).
- The 2020’s account for 27% (322/1,178).
- Both decades account for 80% (946/1,178; 4/5) of the collection:
- The majority of video games in the collection were released in the 2010’s and 2020’s.
- All video games have been sorted by the earliest release dates, followed by the earliest purchase dates.
The total number of console generations in the collection, along with the number of games per console:
- The collection consists of a total of 1,178 games, across 8 distinct PlayStation consoles:
- PS1, PS2, PSP, PS3, VITA, PS4, PSVR, PS5
SELECT * FROM dates
WHERE purchase_date < release_date
ORDER BY release_date DESC
- There are 22 instances of pre-orders in the video game collection, beginning in 2017.
- The pre-orders have been sorted by the most recent release dates in descending order.
SELECT * FROM finances
SELECT COUNT(id) AS ‘Total Number of Games’,
SUM(full_price) AS ‘Total Full Price’,
SUM(paid_price) AS ‘Total Paid Price’,
SUM(savings) AS ‘Total Savings’,
SUM(hours) AS ‘Total Hours Played’
FROM finances
SELECT ROUND(AVG(full_price), 2) AS ‘Average Full Price’,
ROUND(AVG(paid_price), 2) AS ‘Average Paid Price’,
ROUND(AVG(savings), 2) AS ‘Average Savings’,
AVG(hours) AS ‘Average Hours Played’
FROM finances
| Total Number of Games | Total Full Price | Total Paid Price | Total Savings | Total Hours Played |
|---|---|---|---|---|
| 1178 | €28,495.96 | €11,373.49 | €17,122.47 | 17249 |
| Average Full Price | Average Paid Price | Average Savings | Average Hours Played | |
| €24.19 | €9.65 | €14.54 | 15 |
-
The entire collection would have cost €28,495.96 at full price.
-
Thanks to sales, gifts and the PlayStation Plus Essential subscription service, the collection cost €11,373.49.
-
This resulted in savings of €17,122.47 (60% of the full price).
-
The average full price per game would work out at €24.19.
-
The average paid price per game is €9.65.
-
This resulted in average savings of €14.54 per game.
-
The average number of hours played per game is 15 hours.
-
SELECT YEAR(purchase_date) AS Year, COUNT(*) AS ‘Games’,
SUM(full_price) AS ‘Full Price’,
SUM(paid_price) AS ‘Paid Price’,
SUM(savings) AS ‘Savings’
FROM finances f
JOIN dates d ON d.id = f.id
WHERE YEAR(purchase_date) BETWEEN 2009 AND 2026
GROUP BY YEAR(purchase_date)
ORDER BY Year ASC
| Year | Full_Price | Paid_Price | Savings |
|---|---|---|---|
| 2009 (5) | €82.11 | €49.64 | €32.47 |
| 2010 (20) | €362.32 | €236.91 | €125.41 |
| 2011 (19) | €266.49 | €143.03 | €123.46 |
| 2012 (9) | €168.86 | €153.86 | €15.00 |
| 2013 (42) | €932.19 | €571.73 | €360.46 |
| 2014 (24) | €398.80 | €275.85 | €122.95 |
| 2015 (55) | €901.56 | €565.55 | €336.01 |
| 2016 (44) | €711.11 | €403.71 | €307.40 |
| 2017 (185) | €3,710.72 | €2,088.04 | €1,622.68 |
| 2018 (67) | €1,304.34 | €825.77 | €478.57 |
| 2019 (116) | €3,015.31 | €1,571.12 | €1,444.19 |
| 2020 (75) | €1,877.80 | €687.66 | €1,190.14 |
| 2021 (160) | €3,614.63 | €1,376.56 | €2,238.07 |
| 2022 (95) | €3,072.60 | €942.84 | €2,129.76 |
| 2023 (79) | €2,779.19 | €427.65 | €2,351.54 |
| 2024 (51) | €2,126.44 | €473.83 | €1,652.61 |
| 2025 (57) | €1,053.61 | €223.79 | €829.82 |
| 2026 (75) | €2,117.88 | €486.93 | €1,630.95 |
- The years 2017 - 2026 account for savings of €15,568.33 (91% of the total savings).
- The majority of games in the collection were purchased from 2017 onwards, resulting in higher full prices & paid prices, but also resulting in higher savings, compared to pre-2017.
SELECT DATENAME(MONTH, d.purchase_date) AS ‘Month’,
COUNT(*) AS ‘Games’,
SUM(full_price) AS ‘Full Price’,
SUM(paid_price) AS ‘Paid Price’,
SUM(savings) AS ‘Savings’
FROM finances f
JOIN dates d ON d.id = f.id
GROUP BY MONTH(d.purchase_date), DATENAME(MONTH, d.purchase_date)
ORDER BY MONTH(d.purchase_date) ASC
SELECT MONTH(d.purchase_date) AS 'Month',
d.id, d.game, d.console, d.purchase_date,
f.full_price, f.paid_price, f.savings
FROM finances f
JOIN dates d ON d.id = f.id
-- WHERE MONTH(d.purchase_date) = ‘1’
ORDER BY MONTH(d.purchase_date), d.purchase_date ASC
| Month | Full Price | Paid Price | Savings |
|---|---|---|---|
| January (102) | €2,471.63 | €1,084.44 | €1,387.19 |
| February (82) | €1,964.64 | €662.02 | €1,302.62 |
| March (112) | €2,768.05 | €793.49 | €1,974.56 |
| April (86) | €1,749.34 | €889.36 | €859.98 |
| May (134) | €2,748.53 | €1,041.38 | €1,707.15 |
| June (55) | €1,520.16 | €761.12 | €759.04 |
| July (69) | €1,457.41 | €550.17 | €907.24 |
| August (111) | €2,225.97 | €923.27 | €1,302.70 |
| September (131) | €3,355.50 | €920.83 | €2,434.67 |
| October (108) | €2,345.94 | €1,120.54 | €1,225.40 |
| November (80) | €2,200.56 | €1,028.63 | €1,171.93 |
| December (108) | €3,688.23 | €1,729.22 | €1,959.01 |
- May & September saw the most game purchases & most savings, September coinciding with my birthday month.
- December & January were also busy months, as a result of the Christmas season with gifts received, along with the January sales for the best deals to redeem via the gifts.
SELECT r.price_range,
SUM(CASE WHEN full_price >= r.low AND full_price <= r.high THEN 1 ELSE 0 END) AS ‘Full Price’,
SUM(CASE WHEN paid_price >= r.low AND paid_price <= r.high THEN 1 ELSE 0 END) AS ‘Paid Price’,
SUM(CASE WHEN savings >= r.low AND savings <= r.high THEN 1 ELSE 0 END) AS ‘Savings’
FROM
(
VALUES
(1, '< €0.01', -99999, 0.009),
(2, '€0.01 - €9.99', 0.01, 9.99),
(3, '€10.00 - €19.99', 10.00, 19.99),
(4, '€20.00 - €29.99', 20.00, 29.99),
(5, '€30.00 - €39.99', 30.00, 39.99),
(6, '€40.00 - €49.99', 40.00, 49.99),
(7, '€50.00 - €59.99', 50.00, 59.99),
(8, '€60.00 - €69.99', 60.00, 69.99),
(9, '€70.00 - €79.99', 70.00, 79.99),
(10, '> €79.99', 80.00, 99999)
)
AS r(sort_order, price_range, low, high)
LEFT JOIN finances f ON 1 = 1
GROUP BY price_range, sort_order
ORDER BY sort_order
WITH Ranges AS
(
SELECT * FROM
(
VALUES
(1, '< €0.01', -99999, 0.009),
(2, '€0.01 - €9.99', 0.01, 9.99),
(3, '€10.00 - €19.99', 10.00, 19.99),
(4, '€20.00 - €29.99', 20.00, 29.99),
(5, '€30.00 - €39.99', 30.00, 39.99),
(6, '€40.00 - €49.99', 40.00, 49.99),
(7, '€50.00 - €59.99', 50.00, 59.99),
(8, '€60.00 - €69.99', 60.00, 69.99),
(9, '€70.00 - €79.99', 70.00, 79.99),
(10, '> €79.99', 80.00, 99999)
)
AS r(sort_order, price_range, low, high)
)
SELECT * FROM
(
SELECT r.price_range, 'Full Price' AS metric_type,
f.id, f.game, f.console,
f.full_price, f.paid_price, f.savings,
f.full_price AS sort_price
FROM Ranges r
JOIN finances f ON f.full_price BETWEEN r.low AND r.high
UNION ALL
SELECT r.price_range, 'Paid Price' AS metric_type,
f.id, f.game, f.console,
f.full_price, f.paid_price, f.savings,
f.paid_price AS sort_price
FROM Ranges r
JOIN finances f ON f.paid_price BETWEEN r.low AND r.high
UNION ALL
SELECT r.price_range, 'Savings' AS metric_type,
f.id, f.game, f.console,
f.full_price, f.paid_price, f.savings,
f.savings AS sort_price
FROM Ranges r
JOIN finances f ON f.savings BETWEEN r.low AND r.high
)
AS combined_results
ORDER BY price_range, metric_type, sort_price ASC
The total numbers of video games purchased, with a range of different prices (from < €0.01, to €0.01 - €9.99, and over €79.99), outlining the values of full price, paid price and savings upon purchasing.
| Price Range | Full_Price | Paid_Price | Savings |
|---|---|---|---|
| < €0.01 | 22 | 219 | 245 |
| €0.01 - €9.99 | 313 | 637 | 373 |
| €10.00 - €19.99 | 431 | 212 | 300 |
| €20.00 - €29.99 | 180 | 55 | 100 |
| €30.00 - €39.99 | 75 | 24 | 61 |
| €40.00 - €49.99 | 29 | 15 | 29 |
| €50.00 - €59.99 | 38 | 8 | 22 |
| €60.00 - €69.99 | 50 | 2 | 33 |
| €70.00 - €79.99 | 24 | 2 | 12 |
| > €79.99 | 16 | 4 | 3 |
-
There are a total of 219 games purchased via birthday or Christmas gifts, along with the PlayStation Plus Essential subscription service, since 2013.
-
Savings compared to the full price came to €6,657.65 (average of €30.40 per game).
- These savings account for approximately 39% of the total savings.
-
Many video games cost no higher than €39.99 to purchase at full price:
- 1,021 games (22 + 313 + 431 + 180 + 75), 87% of the collection.
-
Many video games were purchased for no higher than €29.99:
- 1,097 games (219 + 637 + 212 + 55), 95% of the collection.
-
Purchasing video games resulted in savings of between €0.01 to €39.99:
- 817 games (373 + 300 + 100 + 61), 71% of the collection.
SELECT * FROM finances
ORDER BY hours DESC, value ASC, savings DESC
SELECT d.id, d.game, d.console, d.purchase_date,
f.full_price, f.paid_price, f.savings
FROM finances f
JOIN dates d ON d.id = f.id
WHERE f.paid_price = 0
ORDER BY d.purchase_date ASC
SELECT * FROM finances WHERE value = 0.00
ORDER BY hours DESC, savings DESC
SELECT * FROM finances
WHERE game LIKE (‘Yakuza%’)
OR game LIKE (‘Like a Dragon%’)
OR game LIKE (‘%Judgment%’)
ORDER BY hours DESC
-
A total of 2,022 hours were spent on the Top 10 games in the collection:
- The Top 10 accounts for 12% (2,022/17,249) of the total hours played in the collection.
-
There are a total of 863 hours spent playing the Top 10 free games in the collection.
-
A total of 2,028 hours were spent across all 15 games in the Yakuza/Like a Dragon/Judgment series, developed by SEGA and Ryu Ga Gotoku Studio.
-
The following ranking system is in place in the XLSX file:
Bracket: Hours Played The Top 100 Gold Tier: Top 10; 154 - 274 Silver Tier: 11th - 55th; 69 - 153 Bronze Tier: 56th - 100th; 48 - 68 Class I 101st - 400th; 10 - 47 Class II 401st - 700th; 1 - 9 Class III 701st - 1,000th; 1 Class RED 1,001st - 1,178th; 1 -
All video games in the finances XLSX tab are sorted by hours played in descending order:
- In the event of games being equal in hours played, they are then sorted by value for money:
- Value for money is a metric calculated by dividing the paid price by the hours played, to yield the cost per hour played.
- So the lower the value for money, the higher those games are in the rankings.
- In the event of games also equal in value for money, they are then sorted by savings:
- So the higher the savings, the higher those games are in the ranking.
- In the event of games being equal in hours played, they are then sorted by value for money:
WITH HourGroups AS
(
SELECT id, hours,
CASE
WHEN hours > 100 THEN '> 100'
WHEN hours BETWEEN 91 AND 100 THEN '91 - 100'
WHEN hours BETWEEN 81 AND 90 THEN '81 - 90'
WHEN hours BETWEEN 71 AND 80 THEN '71 - 80'
WHEN hours BETWEEN 61 AND 70 THEN '61 - 70'
WHEN hours BETWEEN 51 AND 60 THEN '51 - 60'
WHEN hours BETWEEN 41 AND 50 THEN '41 - 50'
WHEN hours BETWEEN 31 AND 40 THEN '31 - 40'
WHEN hours BETWEEN 21 AND 30 THEN '21 - 30'
WHEN hours BETWEEN 11 AND 20 THEN '11 - 20'
WHEN hours BETWEEN 2 AND 10 THEN '2 - 10'
WHEN hours = 1 THEN '1'
ELSE '< 1'
END
AS Hour_Range
FROM finances
)
SELECT Hour_Range, COUNT(id) AS Games
FROM HourGroups
GROUP BY Hour_Range
ORDER BY MIN(hours) DESC
- Many video games have yet to be played (465 games recorded at 1 hour).
- Unplayed games account for 39% (465/1,178; 2/5) of the collection.
- Many video games were played briefly (348 games recorded between 2 to 10 hours).
- These 813 games account for 69% (813/1,178; 2/3) of the collection.
- There is a trend where there are a lower number of games with more hours played through each ascending range of values:
- 129 between 11 to 20 hours, 81 between 21 to 30 hours, etc.
SELECT DISTINCT country
FROM origins
ORDER BY country
SELECT DISTINCT developer, country
FROM origins
ORDER BY country, developer
-
There are 584 distinct video game developers from 51 distinct countries.
-
SELECT o.country AS 'Country',
COUNT(f.id) AS 'Games',
COUNT(DISTINCT o.developer) AS 'Developers',
SUM(f.full_price) AS ‘Full Price’,
SUM(f.paid_price) AS ‘Paid Price’,
SUM(f.savings) AS ‘Savings’,
SUM(f.hours) AS ‘Hours’,
ROUND(SUM(f.paid_price) / NULLIF(SUM(f.hours), 0), 2) AS ‘Value’
FROM origins o
JOIN finances f ON o.id = f.id
GROUP BY o.country
ORDER BY SUM(f.hours) DESC,
[Value] ASC,
SUM(f.savings) DESC -
The charts & table below have a ranking system for all distinct countries:
- In the event of countries being equal in hours played, they are then sorted by value for money:
- Value for money is a metric calculated by dividing the paid price by the hours played, to yield the cost per hour played.
- So the lower the value for money, the higher those countries are in the rankings.
- In the event of countries also equal in value for money, they are then sorted by savings:
- So the higher the savings, the higher those games are in the ranking.
- In the event of countries being equal in hours played, they are then sorted by value for money:
| Country | Games | Developers | Full_Price | Paid_Price | Savings | Hours | Value |
|---|---|---|---|---|---|---|---|
| USA | 317 | 160 | €8,466.55 | €3,842.25 | €4,624.30 | 6114 | €0.63 |
| Japan | 263 | 52 | €5,465.03 | €2,380.81 | €3,084.22 | 4051 | €0.59 |
| Canada | 98 | 49 | €3,399.76 | €1,095.22 | €2,304.54 | 2005 | €0.55 |
| England | 194 | 96 | €4,142.90 | €1,510.58 | €2,632.32 | 1941 | €0.78 |
| Scotland | 10 | 5 | €267.92 | €129.43 | €138.49 | 549 | €0.24 |
| France | 39 | 26 | €874.09 | €315.59 | €558.50 | 462 | €0.68 |
| Australia | 24 | 21 | €584.31 | €228.23 | €356.08 | 315 | €0.72 |
| Sweden | 42 | 27 | €1,067.80 | €254.53 | €813.27 | 224 | €1.14 |
| Germany | 19 | 17 | €451.81 | €231.31 | €220.50 | 214 | €1.08 |
| Poland | 18 | 16 | €484.82 | €175.77 | €309.05 | 207 | €0.85 |
| Netherlands | 11 | 7 | €280.38 | €137.74 | €142.64 | 201 | €0.69 |
| Republic of Ireland | 4 | 3 | €105.95 | €47.05 | €58.90 | 154 | €0.31 |
| Finland | 18 | 9 | €461.81 | €218.33 | €243.48 | 115 | €1.90 |
| Italy | 9 | 6 | €194.91 | €36.93 | €157.98 | 76 | €0.49 |
| China | 7 | 7 | €126.94 | €49.00 | €77.94 | 71 | €0.69 |
| Czechia | 6 | 6 | €126.94 | €64.95 | €61.99 | 68 | €0.96 |
| Indonesia | 3 | 2 | €53.97 | €24.48 | €29.49 | 51 | €0.48 |
| Spain | 13 | 12 | €217.87 | €75.74 | €142.13 | 48 | €1.58 |
| Northern Ireland | 2 | 1 | €54.98 | €35.43 | €19.55 | 42 | €0.84 |
| Austria | 5 | 3 | €149.95 | €79.95 | €70.00 | 40 | €2.00 |
| Singapore | 5 | 3 | €77.95 | €24.45 | €53.50 | 39 | €0.63 |
| Bulgaria | 1 | 1 | €24.99 | €9.99 | €15.00 | 28 | €0.36 |
| Denmark | 11 | 8 | €286.88 | €30.96 | €255.92 | 27 | €1.15 |
| Norway | 3 | 1 | €45.97 | €6.58 | €39.39 | 24 | €0.27 |
| Taiwan | 2 | 2 | €43.98 | €0.00 | €43.98 | 22 | €0.00 |
| Korea Republic | 2 | 2 | €66.97 | €12.98 | €53.99 | 21 | €0.62 |
| South Africa | 2 | 1 | €34.98 | €4.99 | €29.99 | 20 | €0.25 |
| Peru | 2 | 1 | €69.98 | €21.48 | €48.50 | 17 | €1.26 |
| Ukraine | 6 | 3 | €167.95 | €69.95 | €98.00 | 17 | €4.11 |
| Russia | 7 | 7 | €61.93 | €30.59 | €31.34 | 14 | €2.19 |
| Lithuania | 2 | 2 | €29.98 | €13.73 | €16.25 | 9 | €1.53 |
| Wales | 4 | 2 | €52.98 | €27.48 | €25.50 | 9 | €3.05 |
| Colombia | 2 | 2 | €47.98 | €6.98 | €41.00 | 7 | €1.00 |
| Croatia | 5 | 2 | €74.97 | €16.47 | €58.50 | 7 | €2.35 |
| Hungary | 2 | 2 | €29.98 | €23.98 | €6.00 | 6 | €4.00 |
| Portugal | 2 | 2 | €28.98 | €15.98 | €13.00 | 5 | €3.20 |
| Thailand | 1 | 1 | €19.99 | €0.00 | €19.99 | 4 | €0.00 |
| Brazil | 2 | 2 | €30.98 | €13.48 | €17.50 | 4 | €3.37 |
| Israel | 1 | 1 | €4.99 | €0.00 | €4.99 | 3 | €0.00 |
| Luxembourg | 1 | 1 | €9.99 | €6.99 | €3.00 | 3 | €2.33 |
| El Salvador | 1 | 1 | €1.99 | €1.99 | €0.00 | 2 | €1.00 |
| Belarus | 2 | 2 | €39.98 | €10.98 | €29.00 | 2 | €5.49 |
| Mexico | 1 | 1 | €39.99 | €19.99 | €20.00 | 2 | €10.00 |
| Estonia | 1 | 1 | €39.99 | €0.00 | €39.99 | 1 | €0.00 |
| Switzerland | 2 | 2 | €53.98 | €9.09 | €44.89 | 2 | €4.55 |
| Slovenia | 1 | 1 | €9.99 | €4.99 | €5.00 | 1 | €4.99 |
| Nigeria | 1 | 1 | €14.49 | €6.51 | €7.98 | 1 | €6.51 |
| Romania | 1 | 1 | €19.99 | €6.99 | €13.00 | 1 | €6.99 |
| Iceland | 1 | 1 | €29.99 | €10.99 | €19.00 | 1 | €10.99 |
| Belgium | 1 | 1 | €14.49 | €11.59 | €2.90 | 1 | €11.59 |
| New Zealand | 1 | 1 | €39.99 | €19.99 | €20.00 | 1 | €19.99 |
-
The Top 4 countries, USA, Japan, Canada and England, account for 85% (872/1,024) of the total number of games from the Top 10 countries:
- USA: 317 games from 160 developers
- Japan: 263 games from 52 developers
- Canada: 98 games from 49 developers
- England: 194 games from 96 developers
-
The Top 10 countries account for 87% (1,024/1,178) of the entire game collection.
SELECT o.developer AS 'Developer',
o.country AS 'Country',
COUNT(f.id) AS 'Games',
SUM(f.full_price) AS ‘Full Price’,
SUM(f.paid_price) AS ‘Paid Price’,
SUM(f.savings) AS ‘Savings’,
SUM(f.hours) AS ‘Hours’,
ROUND(SUM(f.paid_price) / NULLIF(SUM(f.hours), 0), 2) AS ‘Value’
FROM origins o
JOIN finances f ON o.id = f.id
GROUP BY o.developer, o.country
ORDER BY SUM(f.hours) DESC,
[Value] ASC,
SUM(f.savings) DESC
- The charts & table below have a ranking system for all distinct developers:
- In the event of developers being equal in hours played, they are then sorted by value for money:
- Value for money is a metric calculated by dividing the paid price by the hours played, to yield the cost per hour played.
- So the lower the value for money, the higher those developers are in the rankings.
- In the event of developers also equal in value for money, they are then sorted by savings:
- So the higher the savings, the higher those games are in the ranking.
- In the event of developers also equal in savings, they are then sorted by the country's ranking:
- For example, USA would outrank any country in the event of a tie-break.
- They have the most hours played in the collection, based on the previous c_finances and c_chart tabs.
- For example, USA would outrank any country in the event of a tie-break.
- In the event of developers being equal in hours played, they are then sorted by value for money:
| Developer | Country | Games | Full_Price | Paid_Price | Savings | Hours | Value |
|---|---|---|---|---|---|---|---|
| Ryu Ga Gotoku Studio | Japan | 12 | €568.21 | €182.62 | €385.59 | 1637 | €0.11 |
| Naughty Dog | USA | 15 | €385.30 | €240.31 | €144.99 | 890 | €0.27 |
| Insomniac Games | USA | 18 | €489.86 | €133.42 | €356.44 | 853 | €0.16 |
| SEGA | Japan | 20 | €306.53 | €96.17 | €210.36 | 507 | €0.19 |
| Rockstar North | Scotland | 6 | €218.95 | €120.95 | €98.00 | 480 | €0.25 |
| Ubisoft Montreal | Canada | 15 | €544.86 | €238.37 | €306.49 | 478 | €0.50 |
| Gearbox Software | USA | 7 | €459.92 | €322.93 | €136.99 | 464 | €0.70 |
| Sucker Punch Productions | USA | 9 | €189.94 | €97.65 | €92.29 | 433 | €0.23 |
| Capcom | Japan | 72 | €944.67 | €459.98 | €484.69 | 417 | €1.10 |
| Deep Silver Volition | USA | 5 | €179.93 | €55.46 | €124.47 | 340 | €0.16 |
-
The Top 3 developers, Ryu Ga Gotoku Studio, Naughty Dog and Insomniac Games, account for 52% (3,380/6,499) of the total number of hours played from the Top 10 developers:
- Ryu Ga Gotoku Studio: 1,637 hours played from 12 games
- Naughty Dog: 890 hours played from 15 games
- Insomniac Games: 853 hours played from 18 games
-
The Top 10 developers account for 38% (6,499/17,249) of the total hours played in the game collection.
-
FURTHER DATA ANALYSIS OF COUNTRIES & DEVELOPERS TBC:
- How many games were developed by AAA, SME or Indie developers?
- Research developers & available resources to determine if AAA, SME or Indie.
- Discuss my personal favourite games based on XLSX charts.
- How many games were developed by AAA, SME or Indie developers?
SELECT * FROM platinums
SELECT * FROM platinums ORDER BY rarity ASC
SELECT YEAR(completion_date) AS [Year],
COUNT(id) AS [Platinums Earned],
SUM(rarity) AS [Totals],
CAST(AVG(rarity) AS DECIMAL(10,2)) AS [Average %]
FROM platinums
GROUP BY YEAR(completion_date)
ORDER BY [Year]
- There have been 224 platinum trophies earned, since the 1st platinum trophy achieved in 2012.
- The lower the percentage, the more challenging the game was to fully complete.
- The total and the average values were calculated for platinum rarity percentages per year:
- This is to gauge the average platinum rarity percentages.
- The lower the annual average, the higher it will stand in the overall trophy rankings, outlined in the next section.
SELECT * FROM trophies ORDER BY id ASC
| Year | Platinum | Gold | Silver | Bronze | Year | Platinum | Gold | Silver | Bronze |
|---|---|---|---|---|---|---|---|---|---|
| 2009 | 0 | 2 | 5 | 33 | 2009 | 0 | 2 | 5 | 33 |
| 2010 | 0 | 6 | 24 | 152 | 2010 | 0 | 4 | 19 | 119 |
| 2011 | 0 | 8 | 39 | 239 | 2011 | 0 | 2 | 15 | 87 |
| 2012 | 1 | 16 | 83 | 385 | 2012 | 1 | 8 | 44 | 146 |
| 2013 | 1 | 26 | 120 | 639 | 2013 | 0 | 10 | 37 | 254 |
| 2014 | 1 | 40 | 169 | 875 | 2014 | 0 | 14 | 49 | 236 |
| 2015 | 3 | 69 | 245 | 1219 | 2015 | 2 | 29 | 76 | 344 |
| 2016 | 4 | 75 | 282 | 1320 | 2016 | 1 | 6 | 37 | 101 |
| 2017 | 6 | 120 | 414 | 1759 | 2017 | 2 | 45 | 132 | 439 |
| 2018 | 14 | 172 | 560 | 2237 | 2018 | 8 | 52 | 146 | 478 |
| 2019 | 14 | 205 | 666 | 2794 | 2019 | 0 | 33 | 106 | 557 |
| 2020 | 38 | 329 | 1019 | 3862 | 2020 | 24 | 124 | 353 | 1068 |
| 2021 | 75 | 569 | 1497 | 5215 | 2021 | 37 | 240 | 478 | 1353 |
| 2022 | 114 | 839 | 2051 | 7030 | 2022 | 39 | 270 | 554 | 1815 |
| 2023 | 146 | 1006 | 2471 | 8549 | 2023 | 32 | 167 | 420 | 1519 |
| 2024 | 183 | 1166 | 2828 | 9653 | 2024 | 37 | 160 | 357 | 1104 |
| 2025 | 212 | 1329 | 3183 | 10675 | 2025 | 29 | 163 | 355 | 1022 |
| 2026 | 224 | 1390 | 3259 | 10908 | 2026 | 12 | 61 | 76 | 233 |
-
The years 2020 to 2026 have the most trophies earned, mainly due to the COVID-19 Pandemic lockdowns.
-
Also, this began a more consistent strategy to get the most out of playing all video games via the trophy system.
-
Before COVID, there were far less trophies earned, as I was less aware of the trophy system, that can help to get the most out of video games, and to not miss anything fun/challenging to do.
-
From the previous platinums section, this ties in with the following ranking table of trophies earned per year:
- The total and the average values were calculated for platinum rarity percentages per year:
- This is to gauge the average platinum rarity percentages.
- The lower the annual average, the higher it will stand in the overall trophy rankings.
- Platinum, Gold, Silver and Bronze trophies are earned from playing video games and completing achievements of various difficulty.
- For example, 2025 is considered to be the best year of gaming for me:
- 29 Platinum trophies were earned, with an average platinum rarity of 4.65%.
- Although 37 Platinum trophies were earned in 2024, the average platinum rarity was 5.28%.
- The Platinums earned in 2025 were considered to be tougher to achieve than the Platinums earned in 2024.
- 163 Gold, 355 Silver, and 1,022 Bronze trophies were also earned in 2025.
- This set of values is close to what was earned in 2024 and 2020.
- From 2021 to 2023, the Gold, Silver and Bronze totals far exceed what was earned in 2020 and 2024.
- Despite the increased numbers, these are only compared with years where the Platinum trophy hauls are equal, or close to being equal.
- For example, the current year 2026 (currently ranked 8th) is compared to 2018 (7th) and 2017 (9th).
- The numbers from all trophies in 2026 suggest that 2026 deserves to be between 2018 and 2017.
- Despite the increased numbers, these are only compared with years where the Platinum trophy hauls are equal, or close to being equal.
- 29 Platinum trophies were earned, with an average platinum rarity of 4.65%.
-
The following trophy ranking system is in place in the XLSX file:
| Rank | Year | Average % |
|---|---|---|
| 1st | 2025 | 4.65%, 29,163,355,1022 |
| 2nd | 2024 | 5.28%, 37,160,357,1104 |
| 3rd | 2020 | 7.23%, 24,124,353,1068 |
| 4th | 2022 | 11.9%, 39,270,554,1815 |
| 5th | 2021 | 15.4%, 37,240,478,1353 |
| 6th | 2023 | 16.51%, 32,167,420,1519 |
| 7th | 2026* | 7.25%, 12,61,76,233 |
| 8th | 2018 | 8.94%, 8,52,146,478 |
| 9th | 2017 | 16.9%, 2,45,132,439 |
| 10th | 2015 | 25%, 2,29,76,344 |
| 11th | 2012 | 17.6%, 1,8,44,146 |
| 12th | 2016 | 45.7%, 1,6,37,101 |
| 13th | 2019 | 33,106,557 |
| 14th | 2014 | 14,49,236 |
| 15th | 2013 | 10,37,254 |
| 16th | 2010 | 4,19,119 |
| 17th | 2011 | 2,15,87 |
| 18th | 2009 | 2,5,33 |