PHPMem v2.0.1

Version
1.6.45
Uptime
18 days 12 hours 39 minutes 39 seconds

Memory

Total
512MB
Used
12,33MB (2.41%)
Free
499,67MB

Keys

Current
13 424
Total (since start)
40 994
Evictions
0
Reclaimed
762
Expired Unfetched
0
Evicted Unfetched
0

Connections

Current
2 / 1 024 max
Total
246 710
Rejected
0
llm:ada1e8d33393cdf94673a69e8bb976e74b8396b7e6c76bd576dc7f73e526634f
TTL 3 days 17 hours 44 minutes 9 seconds Size 2,20KB Export
Edit
Yes. The most natural way to group these records is by **court surface**. Round, tournament and player rank are also usable, but they are less clean. **Surface** (`Surface` on `raw.raw_kaggle`, `raw.return_kaggle` and `raw.serve_kaggle`) has four values. It also separates playing style in the data I pulled from the surface-level summary: - **Volume is very uneven.** Hard has 117,571 player-match rows and Clay has 107,650. Grass has only 9,479 and Carpet 2,477. A further 28 rows have a blank surface. Hard and clay make up nearly all of the data. - **Serving style differs clearly.** Average aces per match are about 7.6 on grass and 7.9 on carpet, against 5.9 on hard and 3.4 on clay. Average first-serve points won (`1SP`) are also higher on grass (about 53.0) than on hard (about 45.3) or clay (about 45.0). Double faults are similar everywhere, at about 2.8 to 3.2 per match. - **Ranking mix differs.** Average player rank (`Rk`) is about 311 on hard, 361 on clay, 151 on grass and 517 on carpet. Smaller is better, so grass rows skew toward higher-ranked players. Carpet rows skew toward lower-ranked ones, which fits carpet being a largely discontinued surface. Part of the surface effect is therefore a player-mix effect, so compare like with like. **Other groupings** - **Round (`Rd`)**: about 14 distinct values. It is useful for looking at form from early rounds to finals. - **Tournament**: about 3,963 distinct values. This is too granular for broad segments, so group it into tournament type or level first. - **Player rank (`Rk`, `vRk`)**: a continuous measure that you could bucket, for example top 10, top 50 or top 100, to compare serve and return profiles against stronger or weaker opponents. - **Player and year**: `raw.players_man_` and `raw.players_tournament_man_` let you group by player career or by season. Two caveats: - The tables have no verified join keys, so each segmentation has to be done within one table. - The 28 blank-surface rows should be excluded or flagged. I did not compute the round, rank-bucket or tournament groupings. Only the surface breakdown is backed by a query here.