我有多次出现名为" IDKLIENT"的客户ID。我想为每个ID选择最后一次出现的IDKLIENT,例如
1|x 2|x
1|y 2|y
1|z 2|z
将是:
1|z
2|z
我使用了这段代码:
select a.*
from test a inner join
(select Name_Kl, max(IDKLIENT) as maxid from test group by IDKLIENT) as b on a.IDKLIENT = b.maxid
这样,我只获得与
相同的输出 select a.*
感谢任何帮助!
提前致谢。
编辑:该表还有时间戳。所以我会满意,如果每个ID都选择了max(时间戳)。
答案 0 :(得分:0)
我认为分组已被更改。
试试这种方式
select a.*
from test a
inner join
(select Name_Kl, max(IDKLIENT) as maxid
from test
group by Name_Kl
) as b
on a.IDKLIENT = b.maxid
答案 1 :(得分:0)
根据预期的输出判断,我相信你正在寻找按ID分组来找到idklient的按字母顺序最大的值。如果您需要,可以使用max
按idklient按字母顺序排序:
select id, max(idklient) from test group by id;
相反,如果您希望按插入顺序排序,我建议您使用AUTO_INCREMENT字段,然后您可以使用该字段进行分组。这可能比插入时间戳
更好回复您的修改:
select id, max(timestamp) from test group by id;
这是group-by语句
的典型示例