在一列中获取Max值的整个记录​​(行)

时间:2013-11-17 09:31:16

标签: sql ms-access-2007 max

我有一张表格,其中我在特定日期时间具有不同类别的值。我想获得具有最大值的每个类别的日期时间。

PERIOD_START_TIME   RNC name    Unit Type   AVERAGE_LOAD (M592C0)
11.10.2013 20:00:00 N109        ICSU                70.75
11.09.2013 19:00:00 N109        ICSU                70.25
10.28.2013 00:00:00 N403        ICSU                41.25
10.28.2013 00:00:00 N403        ICSU                51.5
10.28.2013 00:00:00 N403        ICSU                53.75
10.28.2013 00:00:00 N601        ICSU                44.25
10.28.2013 00:00:00 N601        ICSU                44.25

无论何时,我都想为每个RNC提供最大AVERAGE_Load。

2 个答案:

答案 0 :(得分:0)

请注意略微修改的字段名称

SELECT tbl.RNC_name, Max(tbl.AVERAGE_LOAD) AS Max_AVERAGE_LOAD
FROM tbl
GROUP BY tbl.RNC_name;

表示“tbl”请使用实际的表名。

如果您使用“[]”,则可以在字段名称中使用“”,但我不愿意。

答案 1 :(得分:0)

您的样本数据是否正确?最后两行是相同的。您可以允许重复,也可以在表格中显示其他未显示的字段。

您需要在一个查询中对其他字段进行分组,然后将其连接回原始表格以获取最大平均负载的日期/时间

SELECT DISTINCT T.PERIOD_START_TIME,
       Max_T.RNC_name,
       Max_T.Unit_Type,
       Max_T.max_avg_load
FROM T INNER JOIN
     (SELECT RNC_name,
             Unit_Type,
             MAX(AVERAGE_LOAD) AS max_avg_load
      FROM T
      GROUP BY RNC_name,
               Unit_Type) AS Max_T
ON T.RNC_name = Max_T.RNC_name AND
   T.Unit_Type = Max_T.Unit_Type AND
   T.AVERAGE_LOAD = Max_T.max_avg_load

SQL Fiddle