首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当父母分组时,从最大id中选择* (MySQL)

当父母分组时,从最大id中选择* (MySQL)
EN

Stack Overflow用户
提问于 2013-09-25 14:38:52
回答 3查看 2K关注 0票数 1

我一直在努力解决一个大问题。阅读旧的类似问题并没有取得什么成果。

我的表有id、parentid、data1、data2等列。有些情况下,只有一个记录具有相同的父母,而另一些记录有2-10。

我想按父母分组,并打印出所有数据的记录,其中有最大的id。因此,我只会得到所有的“最新”的记录,其中有相同的父母号码。

我希望这是可以理解的目标:)。

我也试图在水晶报告XI和Qlikview 11中解决这个问题,但没有取得很大的成功。

提前感谢您的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-25 15:29:33

可以重用ID列中的值吗?如果没有,那么尤尔根的答案就会奏效。如果可以重用它们,则需要在查询中使用相同的表两次,一次用于获取每个父id的最大id,一次用于获取每个max id /父id的行。就像这样:

代码语言:javascript
复制
select
t1.*
from aTable t1,
(select parentid, max(id) as id
 from aTable group by parentid) t2
where t1.id = t2.id
and t1.parentid = t2.parentid

SQLFIddle!

票数 1
EN

Stack Overflow用户

发布于 2013-09-25 14:41:12

代码语言:javascript
复制
select * from your_table
where id in 
(
  select max(id)
  from your_table
  group by parentid
)
票数 1
EN

Stack Overflow用户

发布于 2013-09-26 07:38:24

使用qlikview的解决方案是:

剧本:

代码语言:javascript
复制
Table:
Load id, 
     parentid, 
     d1, 
     d2
inline
[
  id, parentid, d1, d2
  1, 0,   Hep, 01-04-2010
  2, 1,   Hap, 09-04-2010
  3, 1,   Hup, 10-10-2012
  4, 2,   Bep, 01-12-2009
  5, 4,   Ceg, 02-10-2010
  6, 4,   Pen, 05-10-2009
  7, 4,   Heg, 01-10-2009
  8, 4,   Ran, 08-01-2010
];

然后,我将字段idparentid添加到仪表板中。要计算结果,请使用一个表图,其中、parentid、是维度。加一个公式

代码语言:javascript
复制
=max(id)

并将其命名为“max(Id)”

然后得到以下结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19007935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档