0
votes

SQL changer la ligne spécifique

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  


6 commentaires

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.


4 Réponses :


0
votes

Vous pouvez utiliser Union tout et ajouter la dernière rangée à la fin. Quelque chose comme ceci: xxx

ou si vous voulez la résumer xxx


0 commentaires

0
votes

Vous pouvez mettre une certaine logique dans la clause par : xxx

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.

Vous pouvez trouver un exemple de travail ici


0 commentaires

0
votes

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


0 commentaires

0
votes

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;


0 commentaires