gpt4 book ai didi

sql - 多个 SQL 计入多个条件

转载 作者:行者123 更新时间:2023-12-02 22:32:06 27 4
gpt4 key购买 nike

我一直在尝试优化从数据库检索数据的方式,以便在软件开发的“仪表板”类型页面上显示

我的数据库结构如下:

  • 需求表,其中包含具有各个字段的所有各种需求,但重要的是 REQ_ID 作为键。
  • 包含多个任务的任务表,其中包含 TASK_ID、TASK_NAME(开发、测试或发布)、TASK_STATUS(未开始、完成、已阻止)、TASK_WINDOW(任务完成时的第 1 周、第 2 周等)和返回到带有 REQ_I 的需求的链接。例如,一个需求可能有多个开发任务、测试任务和发布任务,但只有当与需求相关的所有开发任务都完成时才能开发完成,否则是不完整的

我想查询这两个表以提供一个结果集,其中在单个查询中分别包含每个 DEV 任务窗口的 DEV 完成、测试完成和发布完成要求的数量。我目前正在执行多个查询,每个查询都包含子查询,然后使用 PHP 聚合结果,但这总共需要 15 秒来执行,任何人都可以帮我将其合并到单个查询中>

最佳答案

SELECT r.REQ_ID, 
SUM(CASE WHEN t.TASK_NAME = 'DEV' THEN 1 ELSE 0 END) AS DevComplete,
SUM(CASE WHEN t.TASK_NAME = 'TEST' THEN 1 ELSE 0 END) AS TestComplete,
SUM(CASE WHEN t.TASK_NAME = 'RELEASE' THEN 1 ELSE 0 END) AS ReleaseComplete
FROM Requirements r
INNER JOIN Tasks t
ON r.REQ_ID = t.REQ_ID
WHERE t.TASK_STATUS = 'Complete'
GROUP BY r.REQ_ID

关于sql - 多个 SQL 计入多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com