【问题标题】:Using Count and Max together in SQL Server在 SQL Server 中同时使用 Count 和 Max
【发布时间】:2016-12-02 04:34:55
【问题描述】:

我有一张这样的桌子:

ID ReceptionDate ResultFixedDateTime FinalMeasurementEndDateTime
----------------------------------------------------------------
1  2014-01-01    2014-01-01 10:20:35 2014-01-01 09:20:35
2  2014-01-01    2014-01-01 10:30:35 2014-01-01 09:40:35
3  2014-01-01    2014-01-01 10:50:35 2014-01-01 09:45:35
4  2014-01-02    2014-01-02 10:50:35 2014-01-02 09:45:35
5  2014-01-02    2014-01-02 10:50:35 2014-01-02 09:45:35

我需要一个类似下面的结果,按ReceptionDate 分组,具有相同ReceptionDate 的记录总数以及给定ReceptionDate 的最大时间差(ResultFixedDateTime - FinalMeasurementEndDateTime

ReceptionDate Count      OperatingDiff
--------------------------------------
2014-01-01    3          65
2014-01-02    2          65

此查询返回的记录数超出预期:

SELECT  
    ET.ReceptionDate,
    COUNT(ET.ReceptionDate),
    MAX(DATEDIFF(MINUTE, ET.ResultFixedDateTime, ET.FinalMeasurementEndDateTime)) AS OverTimeDiff
FROM 
    ExaminationTimes ET
WHERE 
    ET.ReceptionDate BETWEEN @StartDate AND @EndDate        
GROUP BY 
    ET.ReceptionDate, ET.ResultFixedDateTime, ET.FinalMeasurementEndDateTime
ORDER BY 
    ET.ReceptionDate

当我取出时它返回正确数量的记录

MAX(DATEDIFF(MINUTE, ET.ResultFixedDateTime, ET.FinalMeasurementEndDateTime)) AS OverTimeDiff

这里有什么问题?

【问题讨论】:

  • MAX() 不会影响返回的记录数。

标签: sql-server group-by sql-order-by aggregate-functions


【解决方案1】:

不要按 ResultFixedDateTime 和 Final MeasurementEndDateTime 分组

SELECT  ET.ReceptionDate, 
        COUNT(ET.ReceptionDate),
        MAX(DATEDIFF(MINUTE, ET.ResultFixedDateTime, ET.FinalMeasurementEndDateTime)) AS OverTimeDiff
        FROM ExaminationTimes ET
        WHERE ET.ReceptionDate BETWEEN @StartDate AND @EndDate      
        GROUP BY ET.ReceptionDate
        --,ET.ResultFixedDateTime
        --,ET.FinalMeasurementEndDateTime
        ORDER BY ET.ReceptionDate

【讨论】:

    猜你喜欢
    • 2020-10-07
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2021-07-08
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多