Análise de Dados
ATENÇÃO!
Nas próximas três questões, considere as tabelas de banco de dados T, TX e DUAL, exibidas com suas respectivas instâncias a seguir.
T
TX
DUAL
Nas colunas das três tabelas, o tipo é o de número inteiro. Em todos os comandos SQL, considera-se o NULL como um valor desconhecido (unknown).
| sequencia | caracteristica |
|---|---|
| 1 | 23987 |
| 2 | 9845 |
| 3 | NULL |
| 4 | 40983 |
| 6 | 48750 |
| 7 | NULL |
| 8 | NULL |
| 10 | 48750 |
| 12 | 48750 |
| sequencia | caracteristica |
|---|---|
| 2 | 9845 |
| 3 | 998034 |
| 4 | 50932 |
| 5 | 24390 |
| 6 | 48750 |
| 6 | 50296 |
| 7 | NULL |
| 8 | 998746 |
| 9 | 32746 |
| 9 | NULL |
| 9 | 22798 |
Considere que é preciso atualizar os dados da tabela T a partir dos dados da tabela TX, ambas definidas anteriormente. A consolidação é feita por meio da alteração na tabela T a partir de registros de TX.
O comando SQL utilizado nessa atualização é exibido a seguir.
update T set caracteristica = (select max(caracteristica) x from TX tx where tx.sequencia = t.sequencia and not (tx.caracteristica is null)) where ( exists (select * from TX tx where tx.sequencia = t.sequencia and not (tx.caracteristica is null)) and ( t.caracteristica is null or t.caracteristica < (select max(caracteristica) x from TX tx where tx.sequencia = t.sequencia and not (tx.caracteristica is null)) ) )
O número de registros da tabela T afetados pela execução do comando SQL acima é: