Questão de Banco de Dados — SQL — FUNDATEC 2023
- Código
- qq891232
- Banca
- FUNDATEC
- Órgão
- GHC-RS
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Sistemas
Para responder à questão, considere a Figura 4.

- A0
- B1
- C3
- D4
- E6
Para responder à questão, considere a Figura 4.

GabaritoC — 3
Gabarito: letra C — a conta chega a 3 linhas — alternativa C.
O GROUP BY é uma cláusula do SQL que junta todas as linhas que têm o mesmo valor em uma coluna escolhida, transformando cada grupo em uma única linha no resultado. Ele é sempre usado com funções de agregação, como COUNT, SUM, AVG, MAX e MIN, que resumem as informações de cada grupo. O número de linhas do resultado final é exatamente o número de grupos formados, não o total de registros da tabela.
A função COUNT(coluna) conta quantas linhas de cada grupo têm valor não nulo na coluna indicada. O GROUP BY define os grupos; o COUNT apenas preenche cada grupo com um número. Se a tabela tem 6 registros distribuídos em 3 turnos diferentes, o GROUP BY cria 3 grupos, e o resultado terá 3 linhas, cada uma com o nome do turno e a contagem de IDs daquele turno. A pegadinha clássica é confundir o total de linhas da tabela com o número de grupos.
Esta questão cobra exatamente essa distinção: o comando agrupa por TURNO, então o número de linhas retornadas é o número de turnos distintos presentes na tabela, não o total de registros.
tabela TURMA com colunas ID e TURNO
comando SQL: SELECT COUNT(ID), TURNO FROM TURMA GROUP BY TURNO
O que queremos: o número de linhas retornadas pelo comando
O comando tem GROUP BY TURNO, então o agrupamento é feito pelos valores da coluna TURNO. Cada valor distinto dessa coluna vira um grupo, e cada grupo vira uma linha no resultado. Precisamos olhar a tabela e contar quantos turnos diferentes existem.
3 turnos distintos
Contar o total de linhas da tabela (6) em vez de contar os turnos diferentes.
O COUNT(ID) não muda o número de linhas do resultado; ele apenas preenche cada grupo com a quantidade de IDs não nulos. Como o resultado já tem uma linha por grupo, o COUNT só define o valor exibido na primeira coluna.
Pensar que o COUNT(ID) retorna o número de grupos — na verdade ele retorna a contagem de IDs dentro de cada grupo.
Resposta: 3 linhas — alternativa C
Link permanente: /questoes/qq891232