重复的元素计数Sql数据表查询

时间:2010-04-28 10:41:45

标签: sql database count

我有2个表:Order表和orderDetails表。    我写了一个内部联接:

  SELECT Order.id
  FROM Order
  INNER JOIN orderDetails 
   ON Order.id=orderDetails.id

我的输出为:

   id
  100
  100
  100
  101
  101

从上面的数据中,我希望每个记录输出的计数为:

  id  count
  100  3
  101  2

我该怎么做?

4 个答案:

答案 0 :(得分:2)

Select OrderId , Count(*) as [Count]
from OrderDetials
Group By OrderId 

OrderId将是引用订单表

的Order.Id列的foreing键列

如果您的orderDetails.id引用Order.id列这将是查询。

Select id , Count(*) as [Count]
from OrderDetials
Group By id

答案 1 :(得分:0)

SELECT o.id, COUNT(*)
  FROM Order         o
  JOIN orderDetails  od  ON o.id=od.id
 GROUP BY o.id

答案 2 :(得分:0)

您需要使用COUNT聚合和GROUP BY子句。

SELECT Order.id, COUNT(DISTINCT orderDetails.id)
FROM Order 
INNER JOIN orderDetails ON Order.id=orderDetails.orderId 
GROUP BY Order.id

看起来你需要稍微改变连接条件。

答案 3 :(得分:-1)

使用分组

SELECT Order.id, count(*) as Count
FROM Order
INNER JOIN orderDetails 
ON Order.id=orderDetails.id Group by Order.id