7
votes

Intéressant Quiz SQL

Récemment, je suis tombé sur le quiz suivant. Imaginez que nous avons cette table xxx

la tâche consiste à écrire une requête SQL qui sélectionnera toutes les paires sans permettre des doublons. Les permutations sont comptées aussi ({rouge, noir} = {noire, rouge}, seulement une seule des paires est autorisée).

sql

1 commentaires

Vous recherchez un SQL ANSI ou peut-il être spécifique à la SGMS (Ex. SQL Server)?


3 Réponses :


27
votes

Essayez ceci xxx


3 commentaires

Black = Black serait faux, il serait donc sélectionné. La requête ci-dessus a l'air bien envers moi


Voici un lien intéressant sur Cross Joinages DatabaseJournal.com/sqletc/article.php/1438121/...


@glaz, car un point de jointure croisé signifie chaque élément de régler A et associez-le avec chaque élément de Set B ... Donc, vous obtenez une combinaison commandée possible. Le prédicat de la clause où élimine simplement celles où les paires d'éléments proviennent du même élément et l'un des doublons ... (A, B) et (B, A)



0
votes
Select A.Colors, B.Colors From Colors A 
Cross Join Colors B Where A.Colors < B.Colors or B.colors < A.colors

1 commentaires

Cela violerait la condition préalable des permutations: {rouge, noir} = {noir, rouge}, seulement une seule des paires est autorisée .



0
votes

Essayez ceci:

Select * From colours A 
Cross Join colours B Where A.colours < B.colours or B.colours > A.colours
and b.colours != b.colours and a.colours != a.colours


0 commentaires