我有一个存储过程,可以对特定数据集运行一些统计信息。该存储过程可能在一天内运行多次。我需要一种方法来根据我的 RunDate 列来计算执行次数。
其中一列将 Rundate 作为 GetDate() 默认值,而 Execution 列将说明该日期的执行次数。
示例:
RunDate Execution
---------------------
9/12/2023 1
9/12/2023 1
9/12/2023 1
9/12/2023 1
9/12/2023 2
9/12/2023 2
9/12/2023 2
9/12/2023 2
9/13/2023 1
9/13/2023 1
9/13/2023 1
9/13/2023 1
9/14/2023 1
9/14/2023 1
9/14/2023 1
9/14/2023 1
9/14/2023 2
9/14/2023 2
9/14/2023 2
9/14/2023 2
9/14/2023 3
9/14/2023 3
9/14/2023 3
9/14/2023 3
我不确定 countif 是否可以解决问题,因为每天的运行次数会完全不同。我也不希望它计算每一行。只需按 max(RunDate) 进行分组并据此进行计数即可。
您可以根据最新的数据来统计运行次数,并使用计数器按最新的数据对数据进行分组,如下所示:
SELECT
MAX(RunDate) AS Most_Recent_Date,
Execution,
COUNT(*) AS NumberOfExecutions
FROM YourTable
GROUP BY Execution, MAX(RunDate)
用你的桌子替换 YourTable 并尝试这个