SQL Exercise: Oldest orders first on the highest purchase amount
From the following table, write a SQL query to find all the orders. Sort the result-set in descending order by ord_date and purch_amt. Return all fields.
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 selects all columns from the 'orders' table and orders the result set first by 'ord_date' in ascending order,
-- and then by 'purch_amt' in descending order.
SELECT *
-- Specifies the table from which to retrieve the data (in this case, 'orders').
FROM orders
-- Orders the result set first by 'ord_date' column in ascending order,
-- and then by 'purch_amt' column in descending order.
ORDER BY ord_date, purch_amt DESC;
Output of the Query:
ord_no purch_amt ord_date customer_id salesman_id 70013 3045.60 2012-04-25 3002 5001 70012 250.45 2012-06-27 3008 5002 70005 2400.60 2012-07-27 3007 5001 70004 110.50 2012-08-17 3009 5003 70011 75.29 2012-08-17 3003 5007 70008 5760.00 2012-09-10 3002 5001 70007 948.50 2012-09-10 3005 5002 70009 270.65 2012-09-10 3001 5005 70001 150.50 2012-10-05 3005 5002 70002 65.26 2012-10-05 3002 5001 70003 2480.40 2012-10-10 3009 5003 70010 1983.43 2012-10-10 3004 5006
Code Explanation:
The said query in SQL retrieves all columns from the 'orders' table and returns the result sorted first by the "ord_date" column in ascending order, and then by the "purch_amt" column in descending order. The "ORDER BY ord_date, purch_amt DESC" clause sorts the rows in the result set first by ord_date values, and then for the same ord_date values, it sorts them by the purch_amt column in descending order.
Relational Algebra Expression:
Relational Algebra Tree:
Explanation:
Visual presentation:
Practice Online
Query Visualization:
Duration:
Rows:
Cost:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous SQL Exercise: Arrange the orders according to the order date.
Next SQL Exercise: Display customer name, city, grade.
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