教义GROUPBY与SELECT MAX

这是我的桌子:

id | place |    date    |  valid
 1 |  ONE  | 10/12/2019 | true
 2 |  ONE  | 11/12/2019 | true
 3 |  ONE  | 12/12/2019 | true
 4 |  ONE  | 13/12/2019 | false
 5 |  ONE  | 14/12/2019 | false
 6 |  TWO  | 10/12/2019 | true
 7 |  TWO  | 11/12/2019 | true
 8 |  TWO  | 12/12/2019 | true
 9 |  TWO  | 13/12/2019 | true
10 |  TWO  | 14/12/2019 | false
11 |  OTH  | 10/12/2019 | true
12 |  OTH  | 11/12/2019 | true
13 |  OTH  | 12/12/2019 | true
14 |  OTH  | 13/12/2019 | true
15 |  OTH  | 14/12/2019 | true

我正在尝试使用doctrine和QueryBuilder来获取表的ID。 我需要通过有效等于“ true”的位置获取MAX日期的ID。 随着数据的显示,我想要得到这个结果:

 3 |  ONE  | 12/12/2019 | true
 9 |  TWO  | 13/12/2019 | true
15 |  OTH  | 14/12/2019 | true

我尝试了一些查询生成器,但无法获得想要的结果。

$qb = $this->createQueryBuilder("o");
$qb->select('o.id,o.place');
$qb->addSelect($qb->expr()->max('o.date').' AS maxDate');
$qb->andWhere($qb->expr()->eq('o.valid',true));
$qb->groupBy('o.place');

我也尝试过使用子查询,但是我在对位置进行分组,获取最大日期并返回ID 3/9和15时遇到问题。

如何获取最长日期并按行对行进行分组?

谢谢

buyitgo 回答:教义GROUPBY与SELECT MAX

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2912905.html

大家都在问