top | item 37847645

(no title)

mirages | 2 years ago

Here is my try :

  WITH [WITH] AS (
    SELECT [AS], [IN], [ON]
    FROM [UNION]
    WHERE [AND] = [OR]
  ),
  [OUTER] AS (
    SELECT [LEFT], [RIGHT], [FULL]
    FROM [CROSS]
    WHERE [INNER] = [OUTER]
  ),
  [GROUP] AS (
    SELECT COUNT(*) AS [HAVING]
    FROM [ORDER]
    GROUP BY [GROUP]
    HAVING COUNT(*) > 1
  )
    SELECT 
    [WITH].[AS], 
    [OUTER].[LEFT], 
    [GROUP].[HAVING]
    FROM 
    [WITH]
  JOIN 
    [OUTER]
  ON 
    [WITH].[IN] = [OUTER].[RIGHT]
  LEFT JOIN 
    [GROUP]
  ON 
    [WITH].[ON] = [GROUP].[HAVING]
  WHERE 
    [WITH].[AS] = [OUTER].[LEFT]
  AND 
    ([GROUP].[HAVING] IS NULL OR [GROUP].[HAVING] > 1)
  ORDER BY 
    [WITH].[AS] ASC;

discuss

order

NoMoreNicksLeft|2 years ago

I shouldn't even try. I'm clearly way out of my league here. Have an updoot.

ljm|2 years ago

That’s actually pretty clean in terms of being self documenting.