Examples:
Execute a SQL query against the registered frame data:
df = Polars::DataFrame.new(
[
["The Godfather", 1972, 6_000_000, 134_821_952, 9.2],
["The Dark Knight", 2008, 185_000_000, 533_316_061, 9.0],
["Schindler's List", 1993, 22_000_000, 96_067_179, 8.9],
["Pulp Fiction", 1994, 8_000_000, 107_930_000, 8.9],
["The Shawshank Redemption", 1994, 25_000_000, 28_341_469, 9.3],
],
schema: ["title", "release_year", "budget", "gross", "imdb_score"]
)
ctx = Polars::SQLContext.new(films: df)
ctx.execute(
"
SELECT title, release_year, imdb_score
FROM films
WHERE release_year > 1990
ORDER BY imdb_score DESC
",
eager: true
)
Execute a GROUP BY query:
ctx.execute(
"
SELECT
MAX(release_year / 10) * 10 AS decade,
SUM(gross) AS total_gross,
COUNT(title) AS n_films,
FROM films
GROUP BY (release_year / 10) -- decade
ORDER BY total_gross DESC
",
eager: true
)