×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Selecting groups of repeat orders by using aggregate functions

Selecting groups of repeat orders by using aggregate functions

Selecting groups of repeat orders by using aggregate functions

(OP)

I am trying to determine the number of repeat customers we have.

The data is an ORDERS table where using:

select count(CustomerID) as OrdersMade
from Orders
group by customerID

will provide the total number of orders for each customer. Example:

CustomerID    OrdersMade
5456           2
4547           1
5667           5

However I need to know how many customers made 3, 4, 5, 6, etc... orders. Thus the date would look like this:

OrdersMade   NumberOfCustomers
1             99999999
2             56789
3           23000
4           1200

etc....

Any ideas?

Thanks a bunch!
Replies continue below

Recommended for you

RE: Selecting groups of repeat orders by using aggregate functions

maybe something like:

select A.OrdersMade, Count(A.*) As NumberOfCustomers From (select CustomerID, count(CustomerID) as OrdersMade
from Orders
group by customerID) As A
GROUP BY A.OrdersMade

what database are you working in?  You may want to post in the forum dedicated to that database.

Leslie

Anything worth doing is a lot more difficult than it's worth - Unknown Induhvidual

Essential reading for anyone working with databases:
The Fundamentals of Relational Database Design
Understanding SQL Joins

RE: Selecting groups of repeat orders by using aggregate functions

create view Interim_Step as  
select count(CustomerID) as OrdersMade
from Orders
group by customerID;

select Orders_Made, count(customer_id)
from Interim_Step
group by Orders_Made
order by Orders_Made;

This may vary depending on the SQL flavor (especially the view creation.).  It could also be an interim table that gets created instead of a view.

If you have to have each and every possible Orders_Made line appear even if count is zero, you'll need a different approach.

hth
Dennis





Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login


Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close