SQL Exercises: Count how many salesmen each day register orders
From the following table, write a SQL query to count the number of orders based on the combination of each order date and salesperson. Return order date, salesperson id.
Sample table: orders
ord_no purch_amt ord_date customer_id salesman_id ---------- ---------- ---------- ----------- ----------- 70001 150.5 2012-10-05 3005 5002 70009 270.65 2012-09-10 3001 5005 70002 65.26 2012-10-05 3002 5001 70004 110.5 2012-08-17 3009 5003 70007 948.5 2012-09-10 3005 5002 70005 2400.6 2012-07-27 3007 5001 70008 5760 2012-09-10 3002 5001 70010 1983.43 2012-10-10 3004 5006 70003 2480.4 2012-10-10 3009 5003 70012 250.45 2012-06-27 3008 5002 70011 75.29 2012-08-17 3003 5007 70013 3045.6 2012-04-25 3002 5001
Sample Solution:
-- This query counts the number of orders for each combination of 'ord_date' and 'salesman_id' in the 'orders' table.
SELECT ord_date, salesman_id, COUNT(*)
-- Specifies the table from which to retrieve the data (in this case, 'orders').
FROM orders
-- Groups the result set by the 'ord_date' and 'salesman_id' columns.
GROUP BY ord_date, salesman_id;
Output of the Query:
ord_date salesman_id count 2012-07-27 5001 1 2012-08-17 5007 1 2012-04-25 5001 1 2012-09-10 5002 1 2012-10-05 5002 1 2012-10-10 5003 1 2012-09-10 5005 1 2012-08-17 5003 1 2012-06-27 5002 1 2012-09-10 5001 1 2012-10-05 5001 1 2012-10-10 5006 1
Code Explanation:
The said SQL query that count the number of orders placed on each date by each salesman. The "GROUP BY ord_date, salesman_id" clause groups the rows in the 'orders' table by the "ord_date" and "salesman_id" columns, and the "COUNT()" function counts the number of rows in each group.
Relational Algebra Expression:
Relational Algebra Tree:
Explanation:
![Syntax of counts the number of salesmen with their order date and ID registering orders for each day](https://www.w3resource.com/w3r_images/sql-exercise-aggregate-function-code-20.gif)
Visual presentation:
![Syntax of counts the number of salesmen with their order date and ID registering orders for each day](https://www.w3resource.com/w3r_images/sql-exercise-aggregate-function-result-20.gif)
Practice Online
For more Practice: Solve these Related Problems:
- Write a SQL query to count the number of orders placed on '2012-09-10' by each salesperson.
- Write a SQL query to count the number of orders placed on '2012-10-05' by each salesperson, but only for salespeople with a commission rate of 0.14 or higher.
- Write a SQL query to count the number of orders placed on '2012-08-17' by each salesperson, but only for salespeople from the city 'Paris'.
- Write a SQL query to count the number of orders placed on '2012-07-27' by each salesperson, but only for salespeople who have made at least two sales.
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous SQL Exercise: Number of non NULL city values for salesmen.
Next SQL Exercise: Calculate the average price of all the products.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics