Symmetric Pairs

Sort by

recency

|

1550 Discussions

|

  • + 0 comments
    select distinct a.x,a.y
    from functions a
    inner join functions b
    on a.x = b.y and a.y = b.x
    where a.x <= a.y  AND (a.x != a.y OR (SELECT COUNT(*) 
                                            FROM functions 
                                            WHERE x = a.x AND y = a.y) > 1)
    order by a.x
    
  • + 0 comments

    My Cool Solution (Using Sum and Difference):

    with cte as (
    Select x,y,(x+y) as sm, abs(x-y) as sb from functions
    ),
    cte2 as(
    Select *, row_number() over(partition by sm, sb order by x) as rnk  from cte)
    
    Select y,x from cte2 where rnk = 2 order by y
    
  • + 0 comments

    WITH TMP AS ( SELECT *, ROW_NUMBER() OVER(ORDER BY X, Y ASC) AS ID FROM FUNCTIONS )

    SELECT DISTINCT TMP1.X, TMP1.Y FROM TMP TMP1 INNER JOIN TMP TMP2 ON TMP1.ID < TMP2.ID AND (TMP1.X = TMP2.Y AND TMP1.Y = TMP2.X);

  • + 0 comments

    SELECT IF(X > Y, Y, X) AS c1, IF(X > Y, X, Y) AS c2 FROM Functions GROUP BY c1, c2 HAVING COUNT(*) > 1 ORDER BY c1 ASC

  • + 0 comments

    SET NOCOUNT ON;

    /* Enter your query here. Please append a semicolon ";" at the end of the query and enter your query in a single line to avoid error. */

    DECLARE @X INT; DECLARE @Y INT; DECLARE @IT INT = 1; DECLARE @IMAXX INT; DECLARE @JMAXX INT; DECLARE @LINE VARCHAR(MAX)=''; DECLARE @COUNT INT =0;

    DECLARE @CTE TABLE ( RowNum INT, X INT, Y INT );

    -- Populate the table variable INSERT INTO @CTE (RowNum, X, Y) SELECT ROW_NUMBER() OVER (ORDER BY X, Y) AS RowNum, X, Y FROM (SELECT DISTINCT X, Y FROM FUNCTIONS) AS DistinctFunctions; DECLARE @RESULT TABLE( X INT, Y INT )

    SELECT @IMAXX=COUNT() FROM @CTE ; SELECT @JMAXX=COUNT() FROM FUNCTIONS;

    WHILE @IT <= @IMAXX BEGIN DECLARE @JT INT =1; SELECT @X = X, @Y = Y FROM @CTE WHERE RowNum = @IT; WHILE @JT <= @JMAXX BEGIN IF @X <= @Y BEGIN IF @X=@Y BEGIN SELECT @COUNT=COUNT() FROM FUNCTIONS WHERE X=@Y AND Y=@X; IF @COUNT>=2 BEGIN INSERT INTO @RESULT VALUES(@X, @Y); BREAK; END END ELSE BEGIN SELECT @COUNT=COUNT() FROM FUNCTIONS WHERE X=@Y AND Y=@X; IF @COUNT>=1 BEGIN INSERT INTO @RESULT VALUES(@X, @Y); BREAK; END END END SET @JT+=1; END SET @IT+=1; END SELECT * FROM @RESULT; go