最多按2列分组

iklwldmw  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(205)

我不知道该怎么做。
我有3栏第一栏是母公司,第二栏是子公司,第三栏是收入。我想找出每个父母哪个孩子的收入最多,以及收入是多少。
就像下面这样

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

所以答案是

Vodafone.      England          10b

抱歉格式化,在我手机上。

b91juud3

b91juud31#

你可以用 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() 如果多个公司有相同的收入。

xwbd5t1u

xwbd5t1u2#

你可以试试下面这个-

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

相关问题