MAX Группировка по 2 столбцам - PullRequest
0 голосов
/ 09 июля 2020

Я в тупике, как это сделать.

У меня есть 3 столбца: первый - родительская компания, второй - дочерний, а третий - доход. Я хочу узнать, какой дочерний элемент на одного родителя имеет наибольший доход и каков этот доход.

Как показано ниже

Vodafone.      Argentina.      5b 
Vodafone.      Spain.          4b 
Vodafone.      England.        10b

Таким образом, ответ будет

Vodafone.      England          10b

Приносим извинения за форматирование на моем телефоне.

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вы можете использовать row_number(). Вот демонстрация .

select
  company, 
  child,
  revenue
from
(
  select
    *,
    row_number() over (partition by company order by cast(revenue as int) desc) as rn
  from yourTable
) subq
where rn = 1

вывод:

| company  | child   | revenue |
| -------- | ------- | ------- |
| Vodafone | England | 10      |

Вы можете использовать dense_rank(), если у нескольких компаний одинаковый доход.

0 голосов
/ 09 июля 2020

Вы можете попробовать следующее -

select * from tablename 
where cast(revenue as int) = (select max(cast(revenue as int)) from tablename)
...