| 1234567891011121314151617181920212223242526 |
- 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);
|