来自 INNER JOIN 的 SQL 计数

问题描述 投票:0回答:6

如何从带有分组的内部联接中选择计数?

SELECT COUNT(table1.act) FROM table1
INNER JOIN table2 ON table1.act = table2.act
GROUP BY table1.act

这将返回在表2中找到的行为的计数。

添加

 SELECT table1.act, COUNT(table1.act) AS test

退货

act     test
------- ----
17682   3
17679   3
17677   3
11636   1
11505   1

我想收到已发现的行为总数。

所以我想要 5。你能帮忙吗?

sql count
6个回答
38
投票

您可以将该查询包装到另一个查询中:

SELECT COUNT(*) FROM (
    SELECT COUNT(table1.act) AS actCount FROM table1
    INNER JOIN table2 ON table1.act = table2.act
    GROUP BY table1.act
) t

11
投票

使用 计数不同的

SELECT COUNT(distinct table1.act) FROM table1
INNER JOIN table2 ON table1.act = table2.act

2
投票

用 SELECT COUNT 语句包装整个查询,如 Mosty Mostacho 的答案所示,只是想用 as 语句发布此答案,因为通常最好返回带有列标题的结果。

SELECT COUNT(*) as FilteredActs FROM (
    SELECT COUNT(table1.act) AS actCount FROM table1
    INNER JOIN table2 ON table1.act = table2.act
    GROUP BY table1.act
) T

结果:


1
投票
SELECT COUNT(table2.act) FROM table1
INNER JOIN table2 ON table1.act = table2.act

1
投票

如果您只想要结果计数,

SELECT     COUNT(1)
FROM       table1
INNER JOIN table2 ON table1.act = table2.act
GROUP BY   table1.act

这应该给你


0
投票

SELECT COUNT(*) AS 总记录数 从T1出发 T1.emp_id = T2.emp_id 上的内连接 T2 其中 T1.emp_id 介于 1 和 50 之间;

© www.soinside.com 2019 - 2024. All rights reserved.