56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
const { sequelize } = require('./config/database');
|
|
const { Vocab } = require('./models');
|
|
|
|
async function checkGrades() {
|
|
try {
|
|
await sequelize.authenticate();
|
|
|
|
// Get unique grades
|
|
const grades = await sequelize.query(
|
|
`SELECT DISTINCT grade, COUNT(*) as count
|
|
FROM vocab
|
|
WHERE etc = 'familynfriend'
|
|
GROUP BY grade
|
|
ORDER BY grade
|
|
LIMIT 20`,
|
|
{ type: sequelize.QueryTypes.SELECT }
|
|
);
|
|
|
|
console.log('📊 Grade distribution (first 20):');
|
|
grades.forEach(g => {
|
|
console.log(` Grade ${g.grade}: ${g.count} words`);
|
|
});
|
|
|
|
// Count by major grade (first digit after removing leading zeros)
|
|
const majorGrades = await sequelize.query(
|
|
`SELECT
|
|
CASE
|
|
WHEN grade >= 10000 AND grade < 20000 THEN 'Grade 1'
|
|
WHEN grade >= 20000 AND grade < 30000 THEN 'Grade 2'
|
|
WHEN grade >= 30000 AND grade < 40000 THEN 'Grade 3'
|
|
WHEN grade >= 40000 AND grade < 50000 THEN 'Grade 4'
|
|
WHEN grade >= 50000 AND grade < 60000 THEN 'Grade 5'
|
|
ELSE 'Other'
|
|
END as grade_level,
|
|
COUNT(*) as count
|
|
FROM vocab
|
|
WHERE etc = 'familynfriend'
|
|
GROUP BY grade_level
|
|
ORDER BY grade_level`,
|
|
{ type: sequelize.QueryTypes.SELECT }
|
|
);
|
|
|
|
console.log('\n📊 Count by grade level:');
|
|
majorGrades.forEach(g => {
|
|
console.log(` ${g.grade_level}: ${g.count} words`);
|
|
});
|
|
|
|
process.exit(0);
|
|
} catch (error) {
|
|
console.error('❌ Error:', error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
checkGrades();
|