如何返回所有完成首次计票的选区并获取各选区首次投票时间戳

解决方案
1. 获取每个选区首次投票对应的时间戳
核心逻辑是按选区维度分组,取该选区下所有首次投票记录的最小时间戳即可,以下是通用SQL实现,可根据你使用的数据库语法、实际表名字段名微调:
SELECT precinct_id AS 选区ID, precinct_name AS 选区名称, MIN(vote_timestamp) AS 首次投票时间戳 FROM vote_records -- 如有过滤首次投票类型的需求可加对应条件 WHERE vote_type = 'first_vote' GROUP BY precinct_id, precinct_name;
2. 获取所有已完成首次计票的选区
根据不同的业务判定规则,给三种常见场景的实现方案:
- 场景1:选区表有专门的计票状态标记字段,
first_count_status值为completed即代表完成SELECT DISTINCT precinct_id, precinct_name FROM precinct_info WHERE first_count_status = 'completed'; - 场景2:判定规则为「选区所有登记选民都已完成首次投票」
SELECT v.precinct_id, v.precinct_name FROM vote_records v JOIN precinct_info p ON v.precinct_id = p.precinct_id WHERE v.vote_type = 'first_vote' GROUP BY v.precinct_id, v.precinct_name, p.registered_voter_count HAVING COUNT(DISTINCT v.voter_id) = p.registered_voter_count; - 场景3:判定规则为「该选区已生成首次计票结果记录」
SELECT DISTINCT precinct_id, precinct_name FROM first_count_results;
内容的提问来源于stack exchange,提问作者Kavant
相关产品推荐
相关产品推荐

