如何 SELECT 区分 MAX 和 return 完整的 table 字段

How to SELECT distinct with MAX and return full table fields

我的table:

id  name    empid   t_date              lesson          score
1   Allen   9527    2015-02-11 15-47-56 fire            100
2   Allen   9527    2015-02-11 15-49-44 back            100
4   Allen   9527    2015-02-11 15-51-22 machine_guard   100
6   Allen   9527    2015-02-11 15-52-28 machine_guard   25
8   Allen   9527    2015-02-11 15-53-23 lockout         100
9   Allen   9527    2015-02-11 15-54-01 fire            36
10  Jeremy  9845    2015-02-12 11-08-43 back            92
11  Jeremy  9845    2015-02-12 14-06-50 back            36
12  Jeremy  9845    2015-02-12 14-25-06 machine_guard   90
13  Jeremy  9845    2015-02-12 14-43-32 machine_guard   95

我需要区分名字,课程,还想要分数的最大值

我想要的结果:

id  name    empid   t_date              lesson          score
1   Allen   9527    2015-02-11 15-47-56 fire            100
2   Allen   9527    2015-02-11 15-49-44 back            100
4   Allen   9527    2015-02-11 15-51-22 machine_guard   100
8   Allen   9527    2015-02-11 15-53-23 lockout         100
10  Jeremy  9845    2015-02-12 11-08-43 back            92
13  Jeremy  9845    2015-02-12 14-43-32 machine_guard   95

我试过: SQL:

SELECT distinct name,lesson,max(score) as scores from test
where t_date between '2015-02-11' and '2015-02-13'
group by name,lesson

name    lesson          scores
Allen   back            100
Allen   fire            100
Allen   lockout         100
Allen   machine_guard   100
Jeremy  back            92
Jeremy  machine_guard   95

我不知道如何将 t_date.. 字段添加到 table.If 的 result.The 完整字段中有相同的分数,相同的名称和课程,我想要选择早期的 t_date。

您还可以获得 t_dateMIN(),因为正如我观察到的您想要的结果,您通过 [=15] 获得每个 name 组的早期日期=].见下文:

SELECT 
      DISTINCT name, 
      lesson,
      MAX(score) AS scores,
      MIN(t_date) AS t_date
 FROM test
WHERE t_date BETWEEN '2015-02-11' AND '2015-02-13'
GROUP BY name,lesson

您可以使用以下查询来获得您想要的结果:

SELECT 
      MIN(id) AS id,
      name,
      empid,
      MIN(t_date) AS t_date,
      lesson,
      MAX(score) AS score
 FROM test
WHERE t_date BETWEEN '2015-02-11' AND '2015-02-13'
GROUP BY name,empid,lesson