【发布时间】:2021-08-31 15:19:14
【问题描述】:
我有两张表如下:
TABLE A
| id | col_a | col_b | user_id |
--------------------------------
| 1 | false | true | 1 |
| 2 | false | true | 2 |
| 3 | true | true | 2 |
| 4 | true | true | 3 |
| 5 | true | false | 1 |
TABLE B
| id | name |
--------------
| 1 | Bob |
| 2 | Jim |
| 3 | Helen |
| 4 | Michael|
| 5 | Jen |
我想得到两个计数的总和,即col_a 中true 值的数量和col_b 中true 值的数量。我想按user_id 对这些数据进行分组。我还想加入表 B 并获取每个用户的名称。结果如下所示:
|user_id|total (col_a + col_b)|name
------------------------------------
| 1 | 2 | Bob
| 2 | 3 | Jim
| 3 | 2 | Helen
到目前为止,我通过以下查询得到了总和:
SELECT
(SELECT COUNT(*) FROM "TABLE_A" WHERE "col_a" is true)+
(SELECT COUNT(*) FROM "TABLE_A" WHERE "col_b" is true)
as total
但是,我不确定如何按 user_id 对这些计数进行分组。
【问题讨论】:
标签: sql postgresql join count aggregate