MySQL-如何按日期选择GROUPBY子句中的第一个字符串
给定此事务表MySQL-如何按日期选择GROUPBY子句中的第一个字符串,mysql,greatest-n-per-group,Mysql,Greatest N Per Group,给定此事务表 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”列,以按日期显示表中显示的姓氏(日期中的高数字是按时间顺序排列的最后一个)。最终结果: ID Date Name Stat1 1 3 c 3 2 5 e 2 不幸的是,此代码: S
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”列,以按日期显示表中显示的姓氏(日期中的高数字是按时间顺序排列的最后一个)。最终结果:
ID Date Name Stat1
1 3 c 3
2 5 e 2
不幸的是,此代码:
Select ID,Date,Name,sum(Stat1)
From myTable
Group by ID
将生成“随机”名称,如何强制选择每个组(ID)中的第一个/最后一个记录名(按日期)
谢谢您可以通过这样的查询来完成 如果您想拥有组的第一行或最后一行,请将“最小”更改为“最大”:
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;