选择具有最多多列值的行

时间:2012-10-12 07:55:16

标签: mysql sql select

  

可能重复:
  SQL how to find rows which have highest value of specific column

这是我的表架构

--transaction_details--
transaction_id primary_key auto inc
entity_name 
entity_transaction

现在,一个实体可以拥有多个交易。我想查询为每个实体进行的最后一次交易,这与查找特定列的this post不同。这可以通过为每个实体选择具有last / max transaction_id的行来完成。但我无法编写此查询。我尝试使用entity_name分组,但选择任意随机行。

2 个答案:

答案 0 :(得分:0)

如果同一个entity_name的entity_transaction始终相同,你可以这样做:

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

如果同一entity_transaction的{​​{1}}值不同,请使用此查询:

entity_name

答案 1 :(得分: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