Ollivander's Inventory

  • + 1 comment

    Using WITH cte, partitioned on power and age.

    with cte as ( select a.id, b.age, a.coins_needed, a.power, ROW_NUMBER() OVER (PARTITION BY a.power, b.age order by a.coins_needed asc, a.power desc, b.age desc) as row_num

    from Wands a INNER JOIN Wands_Property b on a.code = b.code where b.is_evil = '0' )

    select id, age, coins_needed, power from cte where row_num = 1 order by power desc, age desc;