Reputation: 1460
I have 2 tables customer
and orders
. Each customer can place multiple orders
customer
has a column customer_num
orders
has columns order_num, customer_num
I want the results to show like this:
Here is my current code which only returns all the distinct customer num
select distinct c.customer_num
from customer c
inner join orders o on o.CUSTOMER_NUM = c.customer_num
Upvotes: 1
Views: 5010
Reputation: 658907
Assuming you are only interested in customers who actually ordered something, to get your desired result, you don't even need to involve table customer. Just:
SELECT customer_num, count(*) AS orders_made
FROM orders
GROUP BY customer_num
ORDER BY customer_num; -- seems like you want this order?
Upvotes: 2
Reputation: 37483
Try the below - using count()
aggregation with group by
select c.customer_num,count(order_num)
from customer c inner join orders o on o.CUSTOMER_NUM = c.customer_num
group by c.customer_num
Upvotes: 2