2014-04-23 3 views
0

Je me demandais s'il y avait un moyen de changer tronqué en rond en faisant un top x pour cent.Arrondir vs tronquer dans le pourcentage supérieur

Par exemple:

Select Top 10 Percent 
    HospMastID 
     ,ClientID 
    ,ControlGroup = 1 
    Into 
    #RandomTable 
    From 
    #ClientsTable 
    Order By 
    NewID() 

À l'heure actuelle, quand j'ai un total de 1176 documents originaux, il retourne 117 comme 10 pour cent. Juste curieux de savoir quel serait le réglage pour changer cela. Puisque c'est vraiment tronquer les nombres originaux au lieu de l'arrondir.

Merci, Scott

Répondre

1

Si vous voulez ROUND les résultats, vous pouvez calculer votre propre valeur à utiliser dans TOP (accordée, cela signifie que vous avez besoin de compter d'abord les lignes de votre table, mais ce sont les seul moyen que je puisse penser à faire cela, puisqu'il n'y a pas de réglage pour cela):

DECLARE @TopPercent INT, @Top INT 
SET @TopPercent = 10 -- use the value you want here 

SELECT @Top = ROUND(COUNT(*)*CAST(@TopPercent AS DECIMAL(4,1))/100,0) 
FROM #ClientsTable 

SELECT TOP(@Top) 
     HospMastID, 
     ClientID, 
     ControlGroup = 1 
INTO #RandomTable 
FROM #ClientsTable 
ORDER BY NEWID() 
Questions connexes