Dans ma table ci-dessous, je veux changer le placement de la ligne spécifique.
Par exemple, P>
ID Name Count 1 X 50 2 Y 30 3 other 25 4 Z 20
4 Réponses :
Vous pouvez utiliser Union tout et ajouter la dernière rangée à la fin.
Quelque chose comme ceci: ou si vous voulez la résumer p>
Vous pouvez mettre une certaine logique dans la clause code> par code>: de cette façon, les premiers critères de commande sont "lignes x, y, z d'abord, puis Les autres ", alors vous commandez les groupes comme vous le souhaitez, dans votre cas par ID ou par nom fonctionnera. p> Vous pouvez trouver un exemple de travail ici p> p>
Essayez ceci:
SELECT ID,
Name,
CASE
WHEN Name = 'OTHER' THEN (SELECT SUM (COUNT) FROM YOUR_TABLE)
ELSE SUM (COUNT)
END
FROM YOUR_TABLE
GROUP BY Name
ORDER BY Name DESC
Je pense que Union Tout code> peut être l'approche la plus simple, mais comme ceci: select id, name, count
from ((select id, name, count, 1 as ord
from t
where name in ('X', 'Y', 'Z')
) union all
(select 4, 'other', sum(count), 2 as ord
from t
)
) t
order by ord, name;
Quelle est l'attente de production?
Par exemple pour les 3 meilleurs; X-Y-Z devrait être visualisé. Cependant, au total, les 4 devraient être comptés.
Quel est votre résultat attendu devrait se ressembler?
pour Top 3; Nom d'identification compte 1 x 50 2 Y 30 3 Z 20
la question n'est pas claire. Ajoutez votre sortie attendue comme si vous avez fourni la sortie actuelle.
Quelle est votre logique pour la sélection des autres pour la somme et les lignes restantes auront la même valeur.