0

可能重复:
SQL 如何查找特定列的最高值的行

这是我的表架构

--transaction_details--
transaction_id primary_key auto inc
entity_name 
entity_transaction

现在,一个实体可以有多个交易。我想查询为每个实体进行的最后一次交易,这与这篇查找特定列的帖子不同。这可以通过transaction_id为每个实体选择具有最后/最大值的行来完成。但我无法编写此查询。我尝试使用 group byentity_name但它选择任何随机行。

4

2 回答 2

0

如果 entity_transaction 对于相同的 entity_name 始终相同,则可以执行以下操作:

select max(transaction_id), entity_name, entity_transaction
from transaction_details
group by entity_name, entity_transaction

entity_transaction如果您可以为相同的具有不同的值entity_name,请使用此查询:

select g.transaction_id, g.entity_name, d.entity_transaction
from
(
    select max(transaction_id) transaction_id, entity_name
    from transaction_details
    group by entity_name
) g
inner join transaction_details d
  on g.entity_name = d.entity_name and g.transaction_id = d.transaction_id
于 2012-10-12T08:02:13.997 回答
0

尝试这个:

select * 
from   <table> t
join
     ( select entity_name,max(transaction_id) as transaction_id
       from <table>
       group by entity_name)a
on    a.entity_name=t.entity_name
and   a.transaction_id=t.transaction_id
于 2012-10-12T08:02:51.497 回答