开发者

Repeated elements counting for Sql datatables queries

I have 2 tables: an Order table and an orderDetails table. I have written a inner join:

  SELECT Order.id
  FROM Order
  INNER JOIN orde开发者_如何学GorDetails 
   ON Order.id=orderDetails.id

I have got the output as:

   id
  100
  100
  100
  101
  101

From the above data, I want the count of each record output as:

  id  count
  100  3
  101  2

How would I do this?


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

OrderId will be a foreing key column referencing Order.Id column of Order Table

If your orderDetails.id references Order.id column This will be the query.

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


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


You need to use the COUNT aggregate and the GROUP BY clause.

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

It also looks like you need o alter the join condition slightly.


Use Group by

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜