在SQLite3中统计最近50场游戏里“A wins”的次数
用SQL直接统计最新50场游戏中"A wins"的次数
当然可以一步用SQL完成这个统计,完全不用手动遍历结果!这里有两种直观的实现方式:
方法一:使用子查询
这种方式先通过子查询筛选出最新的50条记录,再在外层统计符合条件的数量:
SELECT COUNT(*) AS a_wins_count FROM ( SELECT result FROM games ORDER BY time DESC LIMIT 50 ) AS recent_games WHERE result = 'A wins';
方法二:使用CTE(公共表表达式)
如果追求更好的可读性,尤其是后续可能扩展查询逻辑时,CTE会让代码结构更清晰:
WITH recent_games AS ( SELECT result FROM games ORDER BY time DESC LIMIT 50 ) SELECT COUNT(*) AS a_wins_count FROM recent_games WHERE result = 'A wins';
小提示
确保你的time字段是时间类型(比如DATETIME、TIMESTAMP),这样ORDER BY time DESC才能准确获取最新的50条记录。如果time是字符串格式,可能需要先转换为时间类型再排序,但建议数据库中时间字段优先用专门的时间类型存储。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

