鉴于此交易表
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对记录进行分组,并列出' Name'每个组ID显示按日期显示的姓氏,因为它出现在表格中(日期中的高位数按时间顺序排在最后)。最终结果:
ID Date Name Stat1
1 3 c 3
2 5 e 2
不幸的是这段代码:
Select ID,Date,Name,sum(Stat1)
From myTable
Group by ID
将生成"随机"名,
如何强制选择每个组(ID)中的第一个/最后一个记录名称(按日期)?
由于
答案 0 :(得分:1)
你可以用这样的查询来做。如果要包含组的第一行或最后一行,请将min更改为max:
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;