import Miaoguo from '../src/model/miaoguo.js'; // 找出所有 DayNumber 异常的用户: // 1) 存在 DayNumber=0 的行 // 2) DayNumber 最大值 != 实际不同天数(历史膨胀) const rows = await Miaoguo.RunSql([], ` SELECT UserID, COUNT(DISTINCT DATE(CreateTime)) as days, MAX(DayNumber) as maxDay, MIN(DayNumber) as minDay, SUM(CASE WHEN DayNumber=0 THEN 1 ELSE 0 END) as zeroCnt FROM MiaoguoTask WHERE CardTask>0 GROUP BY UserID HAVING zeroCnt>0 OR maxDay<>days ORDER BY UserID;`); console.log('异常用户数:', rows.length); console.log('有 DayNumber=0 的用户数:', rows.filter(r => r.zeroCnt > 0).length); console.log('DayNumber 膨胀(maxDay<>days)的用户数:', rows.filter(r => r.maxDay !== r.days).length); console.log('用户列表:', rows.map(r => r.UserID).join(',')); console.log('明细(前20):'); for (const r of rows.slice(0, 20)) console.log(` UserID=${r.UserID} days=${r.days} maxDay=${r.maxDay} zeroCnt=${r.zeroCnt}`); process.exit(0);