MySQL - 如何 select 按日期分组的第一个字符串

MySQL - How to select first string in group by clause by date

鉴于此交易 table

ID Date Name Stat1
1  1     a     1
1  2     b     1
1  3     c     1 
2  4     d     1
2  5     e     1

我想按 ID 对记录进行分组,并让每个组 ID 的列 'Name' 按日期显示姓氏,因为它出现在 table 中(日期中的高数字是按时间顺序排列的)最后的)。最终结果:

ID Date Name Stat1
1  3     c    3 
2  5     e    2

不幸的是这段代码:

Select ID,Date,Name,sum(Stat1)
From myTable
Group by ID

会生成"random"名字,
我如何在每个组 (ID) 中强制选择 first/last 记录名称(按日期)?

谢谢

您可以使用这样的查询来完成。

如果您想要组的第一行或最后一行,请将最小值更改为最大值:

SELECT
  result.id,
  result.mdate,
  mt.name,
  result.stat1
FROM (
  Select
    ID,
    min(date) mdate,
    sum(Stat1) as stat1
  From myTable
  Group by ID
) AS result
LEFT JOIN myTable mt 
ON    mt.id = result.id
AND mt.date = result.mdate;