排名
用户解题统计
过去一年提交了
勋章 ①金银铜:在竞赛中获得第一二三名;②好习惯:自然月10天提交;③里程碑:解决1/2/5/10/20/50/100/200题;④每周打卡挑战:完成每周5题,每年1月1日清零。
收藏
| 收藏日期 | 题目名称 | 解决状态 |
|---|---|---|
| 没有收藏的题目。 | ||
评论笔记
| 评论日期 | 题目名称 | 评论内容 | 站长评论 |
|---|---|---|---|
| 没有评论过的题目。 | |||
提交记录
| 提交日期 | 题目名称 | 提交代码 |
|---|---|---|
| 2026-01-19 | 财源广进:开除摸鱼的员工  |
WITH all_employees AS ( SELECT id as employee_id FROM employees ), attendance_daily AS ( SELECT employee_id, DATE(punch_time) as work_date, MIN(punch_time) as first_clock, MAX(punch_time) as last_clock FROM attendance WHERE YEAR(punch_time) = 2025 GROUP BY employee_id, DATE(punch_time) ), attendance_total AS ( SELECT employee_id, SUM( TIMESTAMPDIFF(MINUTE, first_clock, last_clock) / 60.0 - CASE WHEN HOUR(first_clock) < 12 AND HOUR(last_clock) >= 14 THEN 2 ELSE 0 END ) as total_hours FROM attendance_daily WHERE first_clock != last_clock GROUP BY employee_id ), avg_hours AS ( SELECT AVG(total_hours) as avg_val FROM attendance_total ), attendance_score AS ( SELECT ae.employee_id, CASE WHEN at.total_hours IS NULL THEN 1 WHEN at.total_hours < ah.avg_val THEN 1 ELSE 0 END as score FROM all_employees ae LEFT JOIN attendance_total at ON ae.employee_id = at.employee_id CROSS JOIN avg_hours ah WHERE CASE WHEN at.total_hours IS NULL THEN 1 WHEN at.total_hours < ah.avg_val THEN 1 ELSE 0 END > 0 ), compensation_score AS ( SELECT id as employee_id, CASE WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 10 THEN 3 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 20 THEN 2 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 30 THEN 1 ELSE 0 END as score FROM employees WHERE CASE WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 10 THEN 3 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 20 THEN 2 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 30 THEN 1 ELSE 0 END > 0 ), walk_daily AS ( SELECT employee_id, DATE(timestamp) as walk_date, COUNT(*) as daily_count FROM access_control WHERE YEAR(timestamp) = 2025 AND (HOUR(timestamp) < 12 OR HOUR(timestamp) >= 14) GROUP BY employee_id, DATE(timestamp) ), walk_stats AS ( SELECT employee_id, COUNT(*) as total_days, SUM(CASE WHEN daily_count > 3 THEN 1 ELSE 0 END) as high_freq_days FROM walk_daily GROUP BY employee_id ), walk_score AS ( SELECT employee_id, CASE WHEN total_days > 70 AND high_freq_days > 25 THEN 3 WHEN total_days > 60 THEN 1 ELSE 0 END as score FROM walk_stats WHERE CASE WHEN total_days > 70 AND high_freq_days > 25 THEN 3 WHEN total_days > 60 THEN 1 ELSE 0 END > 0 ), emp_flybook_avg AS ( SELECT employee_id, AVG(daily_interaction) as avg_interaction, AVG(daily_messages) as avg_message, AVG(daily_documents) as avg_doc FROM flybook_stats WHERE stat_date >= 20250131 GROUP BY employee_id ), company_flybook_avg AS ( SELECT AVG(daily_interaction) as avg_interaction, AVG(daily_messages) as avg_message, AVG(daily_documents) as avg_doc FROM flybook_stats WHERE stat_date >= 20250131 ), flybook_score AS ( SELECT ae.employee_id, CASE WHEN emp.employee_id IS NULL THEN 3 WHEN emp.avg_interaction < comp.avg_interaction AND emp.avg_message < comp.avg_message AND emp.avg_doc < comp.avg_doc THEN 3 WHEN (CASE WHEN emp.avg_interaction < comp.avg_interaction THEN 1 ELSE 0 END + CASE WHEN emp.avg_message < comp.avg_message THEN 1 ELSE 0 END + CASE WHEN emp.avg_doc < comp.avg_doc THEN 1 ELSE 0 END) = 2 THEN 1 ELSE 0 END as score FROM all_employees ae LEFT JOIN emp_flybook_avg emp ON ae.employee_id = emp.employee_id CROSS JOIN company_flybook_avg comp WHERE CASE WHEN emp.employee_id IS NULL THEN 3 WHEN emp.avg_interaction < comp.avg_interaction AND emp.avg_message < comp.avg_message AND emp.avg_doc < comp.avg_doc THEN 3 WHEN (CASE WHEN emp.avg_interaction < comp.avg_interaction THEN 1 ELSE 0 END + CASE WHEN emp.avg_message < comp.avg_message THEN 1 ELSE 0 END + CASE WHEN emp.avg_doc < comp.avg_doc THEN 1 ELSE 0 END) = 2 THEN 1 ELSE 0 END > 0 ) SELECT e.id as employee_id, COALESCE(a.score, 0) + COALESCE(c.score, 0) + COALESCE(w.score, 0) + COALESCE(f.score, 0) as score FROM employees e LEFT JOIN attendance_score a ON e.id = a.employee_id LEFT JOIN compensation_score c ON e.id = c.employee_id LEFT JOIN walk_score w ON e.id = w.employee_id LEFT JOIN flybook_score f ON e.id = f.employee_id; |
| 2026-01-19 | 财源广进:开除摸鱼的员工  |
WITH attendance_daily AS ( SELECT employee_id, DATE(punch_time) as work_date, MIN(punch_time) as first_clock, MAX(punch_time) as last_clock FROM attendance WHERE YEAR(punch_time) = 2025 GROUP BY employee_id, DATE(punch_time) ), attendance_total AS ( SELECT employee_id, SUM( TIMESTAMPDIFF(MINUTE, first_clock, last_clock) / 60.0 - CASE WHEN HOUR(first_clock) < 12 AND HOUR(last_clock) >= 14 THEN 2 ELSE 0 END ) as total_hours FROM attendance_daily WHERE first_clock != last_clock GROUP BY employee_id ), attendance_score AS ( SELECT employee_id, CASE WHEN total_hours < (SELECT AVG(total_hours) FROM attendance_total) THEN 1 ELSE 0 END as score FROM attendance_total ), compensation_score AS ( SELECT id as employee_id, CASE WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 10 THEN 3 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 20 THEN 2 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 30 THEN 1 ELSE 0 END as score FROM employees ), walk_daily AS ( SELECT employee_id, DATE(timestamp) as walk_date, COUNT(*) as daily_count FROM access_control WHERE YEAR(timestamp) = 2025 AND (HOUR(timestamp) < 12 OR HOUR(timestamp) >= 14) GROUP BY employee_id, DATE(timestamp) ), walk_stats AS ( SELECT employee_id, COUNT(*) as total_days, SUM(CASE WHEN daily_count > 3 THEN 1 ELSE 0 END) as high_freq_days FROM walk_daily GROUP BY employee_id ), walk_score AS ( SELECT employee_id, CASE WHEN total_days > 70 AND high_freq_days > 25 THEN 3 WHEN total_days > 60 THEN 1 ELSE 0 END as score FROM walk_stats ), emp_flybook_avg AS ( SELECT employee_id, AVG(daily_interaction) as avg_interaction, AVG(daily_messages) as avg_message, AVG(daily_documents) as avg_doc FROM flybook_stats WHERE stat_date >= 20250131 GROUP BY employee_id ), company_flybook_avg AS ( SELECT AVG(daily_interaction) as avg_interaction, AVG(daily_messages) as avg_message, AVG(daily_documents) as avg_doc FROM flybook_stats WHERE stat_date >= 20250131 ), flybook_score AS ( SELECT emp.employee_id, CASE WHEN emp.avg_interaction < comp.avg_interaction AND emp.avg_message < comp.avg_message AND emp.avg_doc < comp.avg_doc THEN 3 WHEN (CASE WHEN emp.avg_interaction < comp.avg_interaction THEN 1 ELSE 0 END + CASE WHEN emp.avg_message < comp.avg_message THEN 1 ELSE 0 END + CASE WHEN emp.avg_doc < comp.avg_doc THEN 1 ELSE 0 END) = 2 THEN 1 ELSE 0 END as score FROM emp_flybook_avg emp CROSS JOIN company_flybook_avg comp ) SELECT e.id as employee_id, COALESCE(a.score, 1) + COALESCE(c.score, 0) + COALESCE(w.score, 0) + COALESCE(f.score, 3) as score FROM employees e LEFT JOIN attendance_score a ON e.id = a.employee_id LEFT JOIN compensation_score c ON e.id = c.employee_id LEFT JOIN walk_score w ON e.id = w.employee_id LEFT JOIN flybook_score f ON e.id = f.employee_id; |
| 2026-01-19 | 财源广进:开除摸鱼的员工  |
WITH attendance_daily AS ( SELECT employee_id, DATE(punch_time) as work_date, MIN(punch_time) as first_clock, MAX(punch_time) as last_clock FROM attendance WHERE YEAR(punch_time) = 2025 GROUP BY employee_id, DATE(punch_time) ), attendance_total AS ( SELECT employee_id, SUM( TIMESTAMPDIFF(MINUTE, first_clock, last_clock) / 60.0 - CASE WHEN HOUR(first_clock) < 12 AND HOUR(last_clock) >= 14 THEN 2 ELSE 0 END ) as total_hours FROM attendance_daily WHERE first_clock != last_clock GROUP BY employee_id ), attendance_score AS ( SELECT employee_id, CASE WHEN total_hours < (SELECT AVG(total_hours) FROM attendance_total) THEN 1 ELSE 0 END as score FROM attendance_total ), compensation_score AS ( SELECT id as employee_id, CASE WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 10 THEN 3 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 20 THEN 2 WHEN (TIMESTAMPDIFF(YEAR, hire_date, '2026-03-06') + 1) * salary < 30 THEN 1 ELSE 0 END as score FROM employees ), walk_daily AS ( SELECT employee_id, DATE(timestamp) as walk_date, COUNT(*) as daily_count FROM access_control WHERE YEAR(timestamp) = 2025 AND (HOUR(timestamp) < 12 OR HOUR(timestamp) >= 14) GROUP BY employee_id, DATE(timestamp) ), walk_stats AS ( SELECT employee_id, COUNT(*) as total_days, SUM(CASE WHEN daily_count > 3 THEN 1 ELSE 0 END) as high_freq_days FROM walk_daily GROUP BY employee_id ), walk_score AS ( SELECT employee_id, CASE WHEN total_days > 70 AND high_freq_days > 25 THEN 3 WHEN total_days > 60 THEN 1 ELSE 0 END as score FROM walk_stats ), emp_flybook_avg AS ( SELECT employee_id, AVG(daily_interaction) as avg_interaction, AVG(daily_messages) as avg_message, AVG(daily_documents) as avg_doc FROM flybook_stats WHERE stat_date >= '2025-01-31' GROUP BY employee_id ), company_flybook_avg AS ( SELECT AVG(daily_interaction) as avg_interaction, AVG(daily_messages) as avg_message, AVG(daily_documents) as avg_doc FROM flybook_stats WHERE stat_date >= '2025-01-31' ), flybook_score AS ( SELECT emp.employee_id, CASE WHEN emp.avg_interaction < comp.avg_interaction AND emp.avg_message < comp.avg_message AND emp.avg_doc < comp.avg_doc THEN 3 WHEN (CASE WHEN emp.avg_interaction < comp.avg_interaction THEN 1 ELSE 0 END + CASE WHEN emp.avg_message < comp.avg_message THEN 1 ELSE 0 END + CASE WHEN emp.avg_doc < comp.avg_doc THEN 1 ELSE 0 END) = 2 THEN 1 ELSE 0 END as score FROM emp_flybook_avg emp CROSS JOIN company_flybook_avg comp ) SELECT e.id as employee_id, COALESCE(a.score, 0) + COALESCE(c.score, 0) + COALESCE(w.score, 0) + COALESCE(f.score, 0) as score FROM employees e LEFT JOIN attendance_score a ON e.id = a.employee_id LEFT JOIN compensation_score c ON e.id = c.employee_id LEFT JOIN walk_score w ON e.id = w.employee_id LEFT JOIN flybook_score f ON e.id = f.employee_id ORDER BY score DESC, e.id; |