gpt4 book ai didi

database-design - 数据库设计——我如何随着时间的推移跟踪信息并查询表以获取最新数据?

转载 作者:行者123 更新时间:2023-12-02 05:55:23 25 4
gpt4 key购买 nike

我们正试图跟踪我们部门的应用程序和我们的单元测试使用情况,因此我创建了一个数据库来跟踪这一点。我有一个 Applications 表,起初,我在 Applications 表中创建了一个 UnitTests 列,但我只是意识到,只需将其保持在它将覆盖该应用程序的单元测试历史记录的日期。

由于我希望能够随时间提取此处的数据以生成显示进度的图表,我意识到我需要一个名为 UnitTestTracking 的单独表格,其中包含以下列:

  • ID(主键)
  • application_ID(int)\
  • 添加日期(日期时间)
  • 单元测试计数(整数)

这样,人们可以每周一次或每月一次在此表中添加新条目,我们将有一个随时间推移的历史记录,以显示每个应用程序的进度以及所有应用程序的总数。

现在的一个问题是:由于不同的应用程序会在不同的时间向该表中添加条目,因此我将如何针对该表编写查询以获取所有应用程序的总计数?

本质上(在伪 SQL 中)我需要这样的东西:

“选择所有应用程序的单元测试计数,其中应用程序 data_added 是为该应用程序 ID 添加的最新日期”

您将如何编写此查询?

最佳答案

我认为人们似乎比实际情况更难做到这一点。

要解决这个问题,您需要两个查询:

  1. 为我找到每个应用程序 ID 的最新条目
  2. 使用每个应用程序 ID 的最新条目给我单元测试计数的总和。

第一个 SQL 是:

SELECT application_ID, MAX(date_added) AS lastDateAdded FROM UnitTestTracking GROUP BY application_ID

第二,我们通过嵌套查询来完成这项工作:

SELECT 
SUM(unittestcount)
FROM
UnitTestTracking JOIN
(SELECT
application_ID, MAX(date_added) AS lastDateAdded
FROM
UnitTestTracking GROUP BY application_ID) T
ON UnitTestTracking.application_ID = T.application_ID AND
UnitTestTracking.date_added = T.LastDateAdded

这应该会为您提供所需的信息,即当前的单元测试总数。

关于database-design - 数据库设计——我如何随着时间的推移跟踪信息并查询表以获取最新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777420/

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