按多列分组和聚合

吉姆-Y

示例表

账号

在此处输入图片说明

在此处输入图片说明

项目

在此处输入图片说明

我想要达到的目标:

accountName count(u.id) count(p.id)
-----------------------------------
Account A   1           1
Account B   1           1
Account C   2           3

换句话说,我想要一个查询将这些表连接在一起并计算每个帐户的用户和项目

我试过了:

SELECT
    a.name as "accountName",
    count(u.name),
    count(p.id)
FROM "taccount" a
INNER JOIN "tuser" u ON u.account_id = a.id
INNER JOIN "tproject" p ON p.admin_id = u.id
GROUP BY u.name, a.name, p.id

但它不是按帐户分组的。它给了我以下结果

在此处输入图片说明

有什么建议吗?

法米

你可以试试下面

SELECT
    a.name as "accountName",
    count(distinct u.name),
    count(p.id)
FROM "taccount" a
INNER JOIN "tuser" u ON u.account_id = a.id
INNER JOIN "tproject" p ON p.admin_id = u.id
GROUP BY  a.name

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章