Выберите клиента с самой высокой ценой всех его заказов - PullRequest
0 голосов
/ 21 июня 2019

enter image description here Я хочу указать идентификатор клиента с наибольшей суммой цены его заказов.Пожалуйста, смотрите график заказов вниз.

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Вам нужно сгруппировать по customer_id, чтобы получить все цены каждого клиента. Затем суммируйте эти цены, отфильтруйте их по max (сумма (цена)) или получите первую строку в порядке убывания суммы (цены).

- для Oracle

select * from (Select c.name,c.id,sum(o.price) from Customer c
inner join order o on o.customer_id=c.id
group by c.name,c.id
order by sum(o.price)desc
)where rownum =1

- для сервера sql и mysql

Select top 1 c.name,c.id,sum(o.price) from Customer c
inner join order o on o.customer_id=c.id
group by c.name,c.id
order by sum(o.price)desc
0 голосов
/ 21 июня 2019

SQL DEMO

 SELECT *
 FROM (
         SELECT "customerid", SUM("price")
         FROM  Orders
         GROUP BY "customerid"
         ORDER BY SUM("price") DESC
      ) T
WHERE ROWNUM <= 1      
...