T-Sql – Select Top Percent Determinístico – With Ties

Estória hipotética da vez:
“Apresentar, a partir do salário mais alto, a metade do cadastro de cargos da organização.”

Ex:

DECLARE @cargo TABLE (descricao VARCHAR(10),salarioBase DECIMAL(10,2))
INSERT INTO @cargo
SELECT 'CARGO 1', 600.23
UNION SELECT 'CARGO 2', 750.89
UNION SELECT 'CARGO 3', 600.23
UNION SELECT 'CARGO 4', 300.23

SELECT TOP (50) PERCENT
descricao, salarioBase
FROM @cargo
ORDER BY salarioBase DESC

SELECT TOP (50) PERCENT WITH TIES
descricao, salarioBase
FROM @cargo
ORDER BY salarioBase DESC

 
Observe a diferença entre os resultados obtidos:
– A primeira query nos apresenta os 50% e fim de papo. Lembre-se que TOP PERCENT são sempre arredondados para cima.
– A segunda query nos apresenta os 50% que podemos chamar de “determinísticos”. Determinísticos no sentido de que mesmo extrapolando os 50% que solicitamos, foram incluídas na relação as tuplas com salário igual ao menor salário obtido nos 50% originais…

Eu achei esta explicação que dei sem pé nem cabeça. E vocês?
Difícil de explicar. Facílimo de entender… Como? Ctrl+C no exemplo!

E aí, usuário líder, qual versão atende sua necessidade?

T+

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s