我从几个表中做了一个复杂的查询,它通过id返回一个实体列表
查询构建如:
" t为( - 复杂查询 - )从t"中选择*
12001
12004个
15003
我还有包含3列的表:
它的值日期对于所有实体都不相同。
例如,表格如下:
seq entity value_date
---------- ---------- ----------
1580 12001 30/06/2016
1579 12004 31/05/2016
1578 15003 30/06/2016
1577 12001 31/05/2016
1576 12004 30/06/2016
1575 15003 31/05/2016
1574 12004 30/04/2016
1573 67677 30/04/2016
我需要为每个实体运行(来自查询,因为该表还为我保留了不相关的实体),并为实体选择了max value_date的序列。
结果需要列出3列:seq,entity,value_date(每个实体的最大值)
我该怎么做?
我希望我的问题很明确。
答案 0 :(得分:1)
似乎你需要一个选择max(value_date)
每个实体
select seq, entity, value_date
from my_table
where (entity, value_date) in (select entity , max(value_date)
from my_table
group by entity);
如果有用,也可以这样尝试
select a.seq, a.entity, a.value_date
from my_table a
inner join my_table b on a.entity = b.entity
group by b.entity
having a.value_date = max(b.value_date)