Need help with dgraph query

This is the schema and sample rdf

type Customer {
  customer_name: string
  did_order: [Order]
}

type Order {
  order.customer: Customer
  order.item: [Item]
  order.date: string
}

type Item {
    item.name: string
}


item.name: string @index(exact) .
customer_name: string @index(term) .
did_order: [uid] .
order.customer: uid .
order.item [uid] .
order.date: string .

Sample data

{
  set {
    _:alice <name> "Alice" .
    _:alice <dgraph.type> "Customer" .
    _:alice <did_order> _:order1 .
    _:alice <did_order> _:order2 .


    _:bob <name> "bob" .
    _:bob <dgraph.type> "Customer" .
    _:bob <did_order> _:order3 .
    _:bob <did_order> _:order4 .


    _:order1 <dgraph.type> "Order" .
    _:order1 <order.customer> _:alice .
    _:order1 <order.date> "2019-10-09" .
    _:order1 <order.item> _:x .
    _:order1 <order.item> _:y .

    _:order2 <dgraph.type> "Order" .
    _:order2 <order.customer> _:alice .
    _:order2 <order.date> "2019-10-09" .
    _:order2 <order.item> _:y .
    _:order2 <order.item> _:z .

    _:order3 <dgraph.type> "Order" .
    _:order3 <order.customer> _:bob .
    _:order3 <order.date> "2019-10-09" .
    _:order3 <order.item> _:z .

    _:order4 <dgraph.type> "Order" .
    _:order4 <order.customer> _:bob .
    _:order4 <order.date> "2019-10-09" .
    _:order4 <order.item> _:z .

    _:x <dgraph.type> "Item" .
    _:y <dgraph.type> "Item" .
    _:z <dgraph.type> "Item" .




    _:x <item.name> "pen" .
    _:y <item.name> "pencil" .
    _:z <item.name> "quill" .

  }
}

The expected result is
{
Alice : 3
Bob : 1
}

explaination :-

Alice ordered items :- pencil,pen,quill
bob ordered item :- quill

Take away for me from this example :-
some way to create and use variable whose scope is limited i.e query variable(not value variable) whose scope is limited to each customer.