PGSQL计算两个不同表中的元素

时间:2013-12-16 00:34:43

标签: sql postgresql

我的SQL语句存在问题,它会计算两个表之间的元素,这些表有多对多的关系:

Clients:     | client_id | client_name |
Events:      | client_id | event_id |

结果我需要这样的东西:

| client_id | events_counts | 

其中events_counts将是使用client_id连接到客户端的多个完整事件

我是SQL新手,我不知道如何编写此查询,我考虑在Clients表中添加包含此计数器的新列。

1 个答案:

答案 0 :(得分:1)

使用GROUP BY和COUNT(*)

尝试聚合
SELECT client_id, COUNT(*)
FROM events
GROUP BY client_id

如果您还需要显示客户名称,则必须使用连接:

SELECT c.client_id, c.client_name, count(*)
FROM events e
JOIN clients c ON e.client_id = c.client_id
GROUP BY c.client_id, c.client_name