• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Hipnoted

[Dúvida] Significado do GROUP BY

6 mensagens neste tópico

É isso mesmo...  :biggrin:  Estou com dificuldade em perceber esta instrução em SQL...

Eu acho que se tem de usar quando se pede algo de cada coisa, tipo os clientes de cada hotel. Estou errado?

Alguém pode explicar sff...?  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está aqui uma breve inscrição da função Group By

SQL: GROUP BY Clause

The GROUP BY clause can be used in a SELECT statement to collect data across multiple records and group the results by one or more columns.

The syntax for the GROUP BY clause is:

    SELECT column1, column2, ... column_n, aggregate_function (expression)

    FROM tables

    WHERE predicates

    GROUP BY column1, column2, ... column_n;

aggregate_function can be a function such as SUM, COUNT, MIN, or MAX.

Example using the SUM function

For example, you could also use the SUM function to return the name of the department and the total sales (in the associated department).

    SELECT department, SUM(sales) as "Total sales"

    FROM order_details

    GROUP BY department;

Because you have listed one column in your SELECT statement that is not encapsulated in the SUM function, you must use a GROUP BY clause. The department field must, therefore, be listed in the GROUP BY section.

Example using the COUNT function

For example, you could use the COUNT function to return the name of the department and the number of employees (in the associated department) that make over $25,000 / year.

    SELECT department, COUNT(*) as "Number of employees"

    FROM employees

    WHERE salary > 25000

    GROUP BY department;

Example using the MIN function

For example, you could also use the MIN function to return the name of each department and the minimum salary in the department.

    SELECT department, MIN(salary) as "Lowest salary"

    FROM employees

    GROUP BY department;

Example using the MAX function

For example, you could also use the MAX function to return the name of each department and the maximum salary in the department.

    SELECT department, MAX(salary) as "Highest salary"

    FROM employees

    GROUP BY department;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado vbtipo por meteres aqui isto. Segundo percebi é para agrupar os resultados depois de fazer um SUM, COUNT, MIN, oo MAX.

Assim mostra apenas um campo da tabela se estiver repetido.

Acho que é isso mas se estiver errado pf corrijam-me...  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado vbtipo por meteres aqui isto. Segundo percebi é para agrupar os resultados depois de fazer um SUM, COUNT, MIN, oo MAX.

Assim mostra apenas um campo da tabela se estiver repetido.

Acho que é isso mas se estiver errado pf corrijam-me...  :-[

Uma forma fácil de entender e em bom português é:

A clausula GROUP BY serve para poder tratar grupos de registos como se fossem um registo só.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou porque não olhar para a expressão e traduzi-la literalmente?

Agrupar por!

Imagina que tens uma base de dados e que tens uma tabela de utilizadores, nessa tabela um dos campos indica o pais. Agora imagina que queres saber quantos utilizadores são de cada pais, uma forma simples e fácil de visualizar seria um agrupamento pelo código de país :thumbsup: (claro que com o respectivo count, isto é apenas um exemplo).

Em SQL por vezes é mais fácil traduzir as expressões e ver as coisas de uma forma simplista, por norma é assim que funcionam as coisas ;)

abraços, HecKel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado a todos acho que já entrou mais ou menos para a minha cabeça... :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora