Aqui está uma amostra dos meus dados
select * from (
select 'A' as POD, 164 as result from dual union all
select 'A' as POD, 3 as result from dual union all
select 'A' as POD, 2 as result from dual union all
select 'B' as POD, 409 as result from dual union all
select 'B' as POD, 128 as result from dual union all
select 'B' as POD, 5 as result from dual union all
select 'C' as POD, 12391 as result from dual union all
select 'C' as POD, 624 as result from dual union all
select 'C' as POD, 405 as result from dual union all
select 'C' as POD, 26 as result from dual union all
select 'C' as POD, 3 as result from dual union all
select 'C' as POD, 2 as result from dual
)
POD | RESULTADO |
---|---|
UM | 164 |
UM | 3 |
UM | 2 |
B | 409 |
B | 128 |
B | 5 |
C | 12391 |
C | 624 |
C | 405 |
C | 26 |
E o que eu quero é que eles sejam classificados por grupo com a maior primeira contagem:
POD | RESULTADO |
---|---|
C | 12391 |
C | 624 |
C | 405 |
C | 26 |
B | 409 |
B | 128 |
B | 5 |
UM | 164 |
UM | 3 |
UM | 2 |
Não tenho certeza de como expressar isso como SQL
C
tem o mais alto result
na primeira linha, depois B
tem o próximo mais alto entãoA
Entendo a tarefa da seguinte forma:
Agora, o que consideramos o resultado mais alto? Este é o resultado máximo por pod? Isso seria A = 164, B = 409, C = 12391. Teríamos isso com
Ou é a soma máxima de resultados por pod? Isso seria A = 169, B = 542, C = 13446. E a expressão que precisaríamos é
Use um ou outro em sua
ORDER BY
cláusula. Por exemplo:outra maneira é usar o row_number desta forma para classificar seus dados desc:
Espero que ajude.