组合 SELECT 查询进行全面的任务分析
数据库查询通常需要组合多个来源的数据以获得完整的图片。 这涉及到连接多个 SELECT
语句的结果——这是许多编程环境中的关键技术。
考虑一个涉及具有截止日期和个人分配的任务数据库的场景。 目标是生成一份报告,显示每个人、他们的任务总数以及逾期任务的数量。
这可以使用两个单独的 SELECT
查询来实现:一个用于计算每个人的任务,另一个用于计算过期任务(其中 Age
超过预定义的截止日期 PALT
)。 为了合并这些信息,使用了 LEFT JOIN
。 这可确保包含第一个查询中的所有个人,以及第二个查询中匹配的过期任务计数。连接基于 ks
列(个人标识符)。
组合查询如下:
<code class="language-sql">SELECT t1.ks, t1.[# Tasks], COALESCE(t2.[# Late], 0) AS [# Late] FROM (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
输出是一个表格,列出每个人的ks
、他们的任务总数 (# Tasks
) 以及过期任务的数量 (# Late
)。 COALESCE
处理个人没有逾期任务的情况,为 0
分配一个 # Late
值。 这提供了全面而准确的总结。
以上是如何组合两个 SELECT 查询来统计每个人的任务和延迟任务?的详细内容。更多信息请关注PHP中文网其他相关文章!