--Quais os jogadores de um determinado grupo? SELECT G.NOME_GRUPO, J.NOME_JOGADOR FROM JOGADOR AS J INNER JOIN GRUPO AS G ON (J.COD_GRUPO = G.COD_GRUPO) ORDER BY G.COD_GRUPO --Quais grupos não possuem quaisquer jogadores cadastrados? SELECT * FROM GRUPO WHERE COD_GRUPO NOT IN (SELECT COD_GRUPO FROM JOGADOR) --Quantas rodadas teve até o presente momento? SELECT COUNT (DISTINCT NUM_RODADA) FROM JOGO --Quais peças NÃO FORAM sorteadas até o presente momento? SELECT COD_PECA FROM DOMINO WHERE COD_PECA NOT IN ( SELECT PECA_ESQUERDA AS PECA_JOGO FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) --Quais peças foram sorteadas até o presente momento? SELECT COD_PECA FROM DOMINO WHERE COD_PECA IN ( SELECT PECA_ESQUERDA AS PECA_JOGO FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) --Quais peças foram colocadas em uma determinada rodada de um grupo específico ? SELECT ORDEM, PECA, D.FACE_ESQUERDA, D.FACE_DIREITA FROM (SELECT NUM_RODADA, COD_GRUPO, ORDEM, PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT NUM_RODADA, COD_GRUPO, ORDEM, PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB INNER JOIN DOMINO AS D ON (TAB.PECA = D.COD_PECA) WHERE NUM_RODADA = 1 AND COD_GRUPO = 2 ORDER BY ORDEM --Quais peças mais sairam por grupo? SELECT * FROM (SELECT COD_GRUPO, PECA, COUNT (*) AS QTDE FROM (SELECT COD_GRUPO, PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT COD_GRUPO, PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB GROUP BY COD_GRUPO, PECA) AS TAB3 WHERE (COD_GRUPO, QTDE) IN (SELECT COD_GRUPO, MAX (QTDE) AS QTDE FROM (SELECT COD_GRUPO, PECA, COUNT (*) AS QTDE FROM (SELECT COD_GRUPO, PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT COD_GRUPO, PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB GROUP BY COD_GRUPO, PECA) AS TAB2 GROUP BY COD_GRUPO) ORDER BY COD_GRUPO --Quantas vezes uma determinada peça saiu nas rodadas? SELECT PECA, COUNT (*) AS QTDE FROM (SELECT PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB GROUP BY PECA ORDER BY QTDE DESC --Quantas vezes uma determinada peça saiu nas rodadas para um grupo específico? SELECT PECA, COUNT (*) AS QTDE FROM (SELECT COD_GRUPO, PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT COD_GRUPO, PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB WHERE COD_GRUPO = 7 GROUP BY PECA ORDER BY QTDE DESC --Qual peça mais saiu e qual menos saiu nas partidas? SELECT PECA, QTDE FROM (SELECT PECA, COUNT (*) AS QTDE FROM (SELECT PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB GROUP BY PECA) AS TAB3 INNER JOIN (SELECT MAX (QTDE) AS QMAX , MIN (QTDE) AS QMIN FROM (SELECT PECA, COUNT (*) AS QTDE FROM (SELECT PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB GROUP BY PECA) AS TAB2) AS TAB4 ON (TAB3.QTDE = TAB4.QMAX OR TAB3.QTDE = TAB4.QMIN) ORDER BY QTDE --Que número de face saiu mais vezes? SELECT FACE, COUNT (*) AS QTDE FROM (SELECT FACE_ESQUERDA AS FACE FROM (SELECT PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB INNER JOIN DOMINO AS D ON (TAB.PECA = D.COD_PECA) UNION ALL SELECT FACE_DIREITA FROM (SELECT PECA_ESQUERDA AS PECA FROM JOGO UNION ALL SELECT PECA_DIREITA FROM JOGO WHERE PECA_DIREITA IS NOT NULL) AS TAB INNER JOIN DOMINO AS D ON (TAB.PECA = D.COD_PECA)) AS TAB2 GROUP BY FACE ORDER BY QTDE DESC --Que número de face saiu mais vezes, por grupo Qual o total de casadinhas por grupo? SELECT G.NOME_GRUPO, QTDE FROM (SELECT COD_GRUPO, COUNT(*) AS QTDE FROM JOGO WHERE PECA_DIREITA IS NOT NULL GROUP BY COD_GRUPO ) AS TAB INNER JOIN GRUPO AS G ON (TAB.COD_GRUPO = G.COD_GRUPO) ORDER BY QTDE DESC --Qual o total de casadinhas por rodada e grupo ? SELECT NUM_RODADA, COD_GRUPO, COUNT(*) AS QTDE FROM JOGO WHERE PECA_DIREITA IS NOT NULL GROUP BY NUM_RODADA, COD_GRUPO ORDER BY NUM_RODADA, COD_GRUPO Quem venceu o jogo ? SELECT * FROM (SELECT COD_GRUPO, COUNT(*) AS QTDE FROM JOGO WHERE PECA_DIREITA IS NOT NULL GROUP BY COD_GRUPO ) AS TAB WHERE QTDE IN ( SELECT MAX (QTDE) FROM (SELECT COD_GRUPO, COUNT(*) AS QTDE FROM JOGO WHERE PECA_DIREITA IS NOT NULL GROUP BY COD_GRUPO ) AS TAB )