在群体中寻找Groupwise最大值

Jer*_*man 5 doctrine

如何在Doctrine中找到分组最大值或包含最大值的行?在SQL中,我通常会使用此处所述的自联接来执行此操作.

虽然可以在Doctrine中建立自我关系,但还有更好的方法吗?

Tom*_*nFL 5

分组最大值的示例:

$query = Doctrine_Query::create()
     ->select("txs.id, txs.amount, txs.valid_from")
     ->from("Tx txs")
     ->where("txs.amount = (SELECT MAX(transact.amount) FROM tx transact WHERE txs.id = transact.id)");
Run Code Online (Sandbox Code Playgroud)

包含最大值的行示例:

$query = Doctrine_Query::create()
 ->select("txs.id, txs.amount, txs.valid_from")
 ->from("Tx txs")
 ->where("txs.id = (SELECT transact.id FROM tx transact WHERE transact.amount = (SELECT MAX(transactx.amount) FROM tx transactx))");
Run Code Online (Sandbox Code Playgroud)

这些可能不是唯一的方式(或最干净),但我只测试了它们并且它们起作用.