Dúvida Banco SQL - Como pegar o menor valor de uma linha que possui várias colunas de valores ?
27/09/2021
0
Tenho uma tabela no SQL que se encontra assim:
| id| valor1 | valor2 | valor3 | valor4 | valor5 |
|:-:|:------:|:------:|:------:|:------:|:------:|
| 1 | 7 | 5 | 3 | 6 | 8 |
| 2 | 3 | 2 | 6 | 9 | 7 |
| 3 | 4 | 9 | 5 | 1 | 8 |
Queria uma query que me retornasse a seguinte tabela (ou informação visual):
| id| valor1 | valor2 | valor3 | valor4 | valor5 |
|:-:|:------:|:------:|:------:|:------:|:------:|
| 3 | 1 | 4 | 5 | 8 | 9 |
| 2 | 2 | 3 | 6 | 7 | 9 |
| 1 | 3 | 5 | 6 | 7 | 8 |
Ou seja, me retorne os ids, listados pelo menor preço entre as linhas.
Observando que quando retorna os Ids, já exibe os mesmos com suas colunas em ordem crescente de valores.
| id| valor1 | valor2 | valor3 | valor4 | valor5 |
|:-:|:------:|:------:|:------:|:------:|:------:|
| 1 | 7 | 5 | 3 | 6 | 8 |
| 2 | 3 | 2 | 6 | 9 | 7 |
| 3 | 4 | 9 | 5 | 1 | 8 |
Queria uma query que me retornasse a seguinte tabela (ou informação visual):
| id| valor1 | valor2 | valor3 | valor4 | valor5 |
|:-:|:------:|:------:|:------:|:------:|:------:|
| 3 | 1 | 4 | 5 | 8 | 9 |
| 2 | 2 | 3 | 6 | 7 | 9 |
| 1 | 3 | 5 | 6 | 7 | 8 |
Ou seja, me retorne os ids, listados pelo menor preço entre as linhas.
Observando que quando retorna os Ids, já exibe os mesmos com suas colunas em ordem crescente de valores.
Bruno Murad
Curtir tópico
+ 0
Responder
Post mais votado
27/09/2021
Boa Noite, bem são sempre cinco colunas estas tabelas?
Se sim, vou te dar uma ideia, pela lógica, a melhor coisa a fazer e colocar uma relação de id e coluna única, com isto junte todas as tabelas.
Exemplo criar uma visualização
CREATE VIEW vwTabela (id, coluna) AS
SELECT id, valor_1 FROM <tabela> UNION SELECT id, valor_2 FROM <tabela> ....UNION SELECT id, valor_5 FROM <tabela>
Depois pegue essa visualização e ordene por valor.
OBS: caso tenha um "peso" por coluna, acrescente na visualização a identificação deste a referida da tabela e coluna.
Atc
Se sim, vou te dar uma ideia, pela lógica, a melhor coisa a fazer e colocar uma relação de id e coluna única, com isto junte todas as tabelas.
Exemplo criar uma visualização
CREATE VIEW vwTabela (id, coluna) AS
SELECT id, valor_1 FROM <tabela> UNION SELECT id, valor_2 FROM <tabela> ....UNION SELECT id, valor_5 FROM <tabela>
Depois pegue essa visualização e ordene por valor.
OBS: caso tenha um "peso" por coluna, acrescente na visualização a identificação deste a referida da tabela e coluna.
Atc
Jair N.
Responder
Clique aqui para fazer login e interagir na Comunidade :)