【发布时间】:2020-04-27 07:52:47
【问题描述】:
我有一个这样的数据:
| company_id | role_id |
| 1 | 1 |
| 2 | 2 |
| 1 | 2 |
这是我的查询,它选择一个公司 ID 并作为参数角色 ID 传递。
SELECT company_id AS companyId, COUNT(role_id) AS usersNumber
FROM companies
WHERE role_id = :userId
GROUP BY companyId
:userId 是从 JPA 传递的参数。
这会产生这样的结果:
| company_id | passed_role_id_count |
| 1 | 1 |
| 2 | 1 |
我想要实现的输出是这样的:
| company_id | first_role_count | second_role_count |
| 1 | 1 | 1 |
| 2 | 0 | 1 |
有可能有这样的输出吗?还是从 DB 中选择所有然后使用 Java Streams 分组更好?
【问题讨论】:
-
使用
case表达式进行条件聚合。
标签: java sql postgresql jpa