在 SQL 服务器中同时使用 Count 和 Max
Using Count and Max together in SQL Server
我有一个 table 这样的:
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
的记录总数和给定 ResultFixedDateTime - FinalMeasurementEndDateTime
的最大时间差分组=15=]
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
这里有什么问题吗?
不要按 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
我有一个 table 这样的:
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
的记录总数和给定 ResultFixedDateTime - FinalMeasurementEndDateTime
的最大时间差分组=15=]
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
这里有什么问题吗?
不要按 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