group-by - 使用 SELECT MAX 的原则 GROUPBY
问题描述
这是我的桌子:
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
我正在尝试使用学说和 QueryBuilder 来获取我的表的 id。我需要通过valid等于“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 时遇到问题。
请问如何获得最大日期并按地点分组我的行?
谢谢
解决方案
推荐阅读
- ios - Flutter ITMS-90809:不推荐使用的 API - Apple 将停止接受使用 UIWebView API 的应用程序的提交
- c - 为什么我的程序在文本文件中打印出符号?
- opengl - 使用 vsync 的交换缓冲区是否保证同步?
- java - Lombok getter/setter 在我的注释处理器中不可见
- php - 我在functions.php文件中添加了将用户从WP登录页面转移到Woocomerce登录页面的代码,但现在登录后出现空白屏幕
- python - 如何在 python 中对模型进行评分和测量准确性(泰坦尼克号数据集,RandomForestRegressor)
- ssl - 带 TLS 的 Redis 6
- python - Python数据结构(字典)
- python - 如果列值为 1,则熊猫打印一列应用于所有列
- javascript - 我可以设置我创建的频道权限吗,比如只有我的员工角色可以编辑或删除它。到目前为止我的代码: