102 votes

Regroupement SQL par toutes les colonnes

Existe-t-il un moyen de grouper toutes les colonnes d'un tableau sans spécifier le nom des colonnes ? Par exemple :

select * from table group by *

23voto

Girish Points 1

Il essaie de trouver et d'afficher les lignes dupliquées dans un tableau.

SELECT *, COUNT(*) AS NoOfOccurrences
FROM TableName GROUP BY *
HAVING COUNT(*) > 1

Existe-t-il un moyen simple d'y parvenir ?

12voto

marshall Points 3924

I

declare @t table (a int , b int)

insert into @t (a,b) select 1, 1
insert into @t (a,b) select 1, 2
insert into @t (a,b) select 1, 1

select distinct * from @t

r

a b
1 1
1 2

6voto

DForck42 Points 4421

Non. Essayez-vous de faire de l'agrégation ? Si c'est le cas, vous pourriez faire quelque chose comme ceci pour obtenir ce dont vous avez besoin.

;with a as
(
     select sum(IntField) as Total
     from Table
     group by CharField
)
select *, a.Total
from Table t
inner join a
on t.Field=a.Field

5voto

womp Points 71924

Réponse courte : non. Les clauses GROUP BY exigent intrinsèquement un ordre dans la manière dont elles organisent vos résultats. Un ordre différent de regroupement des champs donnerait des résultats différents.

La spécification d'un caractère générique laisserait la déclaration ouverte à l'interprétation.

5voto

Vojtěch Points 873

Je voulais faire des comptages et des additions sur l'ensemble des résultats. J'ai réalisé le regroupement par tous avec GROUP BY 1=1 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X