This commit is contained in:
George Powell
2025-12-30 15:23:00 -05:00

View File

@@ -0,0 +1,53 @@
import Database from 'bun:sqlite';
// Database path - adjust if your database is located elsewhere
const dbPath = process.env.DATABASE_URL || './local.db';
console.log(`Connecting to database: ${dbPath}`);
const db = new Database(dbPath);
// Query all rows from daily_completions
const query = db.query(`
SELECT date, guess_count
FROM daily_completions
ORDER BY date
`);
const rows = query.all() as { date: string; guess_count: number }[];
if (rows.length === 0) {
console.log('No completions found in the database.');
db.close();
process.exit(0);
}
// Group by date and calculate average guesses
const dateStats = new Map<string, { total: number; count: number }>();
for (const row of rows) {
const existing = dateStats.get(row.date) || { total: 0, count: 0 };
existing.total += row.guess_count;
existing.count += 1;
dateStats.set(row.date, existing);
}
// Display results
console.log('\n=== Average Guesses Per Day ===\n');
console.log('Date | Avg Guesses | Total Completions');
console.log('--------------|-------------|-------------------');
for (const [date, stats] of dateStats) {
const avg = (stats.total / stats.count).toFixed(2);
console.log(`${date.padEnd(14)}| ${avg.padStart(11)}| ${stats.count.toString().padStart(19)}`);
}
// Calculate overall average
const totalGuesses = Array.from(dateStats.values()).reduce((sum, s) => sum + s.total, 0);
const totalCompletions = Array.from(dateStats.values()).reduce((sum, s) => sum + s.count, 0);
const overallAvg = (totalGuesses / totalCompletions).toFixed(2);
console.log('--------------|-------------|-------------------');
console.log(`Overall Average: ${overallAvg} guesses across ${totalCompletions} completions`);
db.close();