Mysql:选择每个ID的最后一次出现

时间:2016-04-20 06:52:52

标签: mysql

我有多次出现名为" 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(时间戳)。

2 个答案:

答案 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语句

的典型示例