【问题标题】:Get Count for each Joined Record获取每个加入记录的计数
【发布时间】:2013-02-19 20:16:00
【问题描述】:

我有 2 张桌子想要加入,并且..

A:
ID Otherfields..
1  ...
2
3
4


B:
ID aId  Otherfields..
1  1    ...
2  1
3  2
4  1

所以我完全有能力通过 a.Id 加入他们,但是如何获得表 B 中匹配项的计数,例如:

a.id  count(b)
1     3
2     1

我认为它一定是 count() over() 但不记得确切用途。

谢谢!

【问题讨论】:

  • 您使用的是什么 DBMS?
  • Oracle - 这不是一个普遍可以解决的问题吗?

标签: sql count


【解决方案1】:

你可以这样做:

SELECT 
  A.ID, COUNT(b.ID)
FROM A 
INNER JOIN B ON A.Id = b.aID
GROUP BY A.ID

【讨论】:

  • 愚蠢的我,从没想过要添加一个组,非常感谢!
【解决方案2】:

你可以拥有

SELECT A.ID, COUNT(b.ID)
FROM A 
LEFT JOIN B ON A.Id = b.aID
GROUP BY A.ID

这将为您提供b.ID 中不存在的所有a.IDs,因此将其计数显示为0。

例如,

ID   Count
1    3
2    1
3    0
4    0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多