# Orders

## Example 1

Calculate the total revenues from Orders, and the min, max and average Order amount:

``````SELECT
count(*) as OrdersNumber,
sum(Amount) AS TotalRevenuesFromOrders,
min(Amount) as MinAmount,
(sum(Amount)/count(*)) as AverageAmount,
max(Amount) as MaxAmount
FROM Orders
``````

In the Browse Tab of Studio, using the query above, this is the visualized result: ## Example 2

Find the year of the Orders, and how many Orders have been placed in the same year:

``````SELECT
count(*) as OrdersCount,
OrderDate.format('yyyy') AS OrderYear
FROM Orders
GROUP BY OrderYear
ORDER BY OrdersCount DESC
``````

In the Browse Tab of Studio, using the query above, this is the visualized result: ## Example 3

Find the 3 Customers who placed most Orders:

``````SELECT
OrderedId as CustomerId,
in("HasCustomer").size() AS NumberOfOrders
FROM Customers
ORDER BY NumberOfOrders
DESC LIMIT 3
``````

In the Browse Tab of Studio, using the query above, this is the visualized result: ## Example 4

Find the top 3 Customers in terms of spending:

``````SELECT
customer.OrderedId as customerOrderedId,
SUM(order.Amount) as totalAmount
FROM (
MATCH {Class: Customers, as: customer}<-HasCustomer-{class: Orders, as: order}
RETURN customer, order
)
GROUP BY customerOrderedId
ORDER BY totalAmount DESC
LIMIT 3
``````

In the Browse Tab of Studio, using the query above, this is the visualized result: ## Example 5

Find all Orders placed by Customer with Id 2:

``````MATCH {class: Customers, as: c, where: (OrderedId=1)}<-HasCustomer-{class: Orders, as: o}
RETURN \$pathelements
``````

In the Graph Editor included in Studio, using 'RETURN \$pathelements' as `RETURN` clause, this is the obtained graph: ## Example 6

Calculate the total revenues from Orders associated with Customer with Id 2:

``````SELECT sum(Amount) as TotalAmount
FROM (
SELECT expand(in('HasCustomer'))
FROM Customers
WHERE OrderedId=2
)
``````

In the Browse Tab of Studio, using the query above, this is the obtained list of records: 