高效数据分析:组合多个SELECT语句
数据库查询通常需要组合来自多个源的数据或应用多种转换。 连接多个 SELECT
语句的输出提供了一种强大的方法来操纵数据并获得有价值的见解。
考虑一个任务数据库,其中每条记录代表一个任务,包括截止日期 (PALT) 和任务的期限(自开始以来的天数)。如果任务的年龄超过其 PALT,则任务会延迟。 我们的目标是生成一个汇总表,显示每个人的总任务数和逾期任务数。
这可以使用两个单独的 SELECT
语句来实现:
<code class="language-sql">SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks;</code>
此查询计算每个人的总任务(由 ks
标识)。
<code class="language-sql">SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks;</code>
此查询计算每个人迟到的任务数量。
为了组合这些,我们使用 LEFT JOIN
:
<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
列连接结果。 COALESCE
处理人员没有迟到任务的情况,将 NULL
替换为 0。
最终表显示 ks
(人员 ID)、# Tasks
(任务总数)和 # Late
(迟到任务数,如果没有则为 0)。这样可以对各个工作负载和逾期任务的百分比进行彻底分析。
以上是如何组合多个SELECT语句来分析任务完成情况和延迟情况?的详细内容。更多信息请关注PHP中文网其他相关文章!