Grupo MySQL por

Resumo: neste tutorial, irá aprender a usar o MySQL GROUP BY para agrupar linhas em subgrupos com base em valores de colunas ou expressões.

Introduction to MySQL GROUP BY clause

The GROUP BY clause groups a set of rows into a set of summary rows by values of columns or expressions. A cláusula GROUP BY devolve uma linha para cada grupo. Em outras palavras, reduz o número de linhas no conjunto de resultados.,

Você costuma usar o GROUP BY cláusula com funções de agregação, tais como SUM AVG MAX MIN e COUNT. A função agregada que aparece na cláusula SELECT fornece informações sobre cada grupo.

The GROUP BY clause is an optional clause of theSELECT statement., O seguinte ilustra o GROUP BY cláusula sintaxe:

GROUP BY cláusula deve aparecer após o FROM e WHERE cláusulas. Seguindo o id

palavras-chave é uma lista de colunas ou expressões separadas por vírgulas que você deseja usar como critério para agrupar linhas.,

MySQL evaluates the GROUP BY clause after the FROM, WHERE and SELECT clauses and before the HAVING , ORDER BY and LIMIT clauses:

MySQL GROUP BY examples

Let’s take some example of using the GROUP BY clause.,

A) Simple MySQL GROUP BY example

Let’s take a look at the orders table in the sample database.,

Suponha que você deseja agrupar valores do status da ordem em subgrupos, você pode usar o GROUP BY cláusula com o status coluna como a consulta a seguir:

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

Como você pode ver, GROUP BY cláusula retorna únicas ocorrências de status valores., Ele funciona como o DISTINCT operador, conforme mostrado na seguinte consulta:

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

B) Usando o MySQL GRUPO com funções de agregação

As funções de agregação permitem-lhe efectuar o cálculo de um conjunto de linhas e retornar um único valor. A cláusula GROUP BY é frequentemente usada com uma função agregada para realizar cálculos e retornar um único valor para cada subgrupo.,

Por exemplo, se você deseja saber o número de ordens em cada status, você pode usar o COUNT função GROUP BY cláusula da seguinte forma:

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

Veja o seguinte orders e orderdetails tabela.,

Para obter a quantidade total de todos os pedidos por status, você junte-se a orders tabela com orderdetails tabela e usar o SUM função para calcular a quantia total. Consulte a consulta a seguir:

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

da mesma forma, a consulta a seguir retorna os números de ordem e a quantidade total de cada encomenda.,

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

C) GRUPO MySQL com expressão de exemplo

além de colunas, você pode agrupar linhas de expressões. A consulta a seguir recebe o total de vendas para cada ano.

Experimentá-Lo

neste exemplo, usamos o YEAR função para extrair dados do ano a partir da data do pedido ( orderDate)., Incluímos apenas encomendas com shipped status no total de vendas. Note – se que a expressão que aparece na cláusula SELECT deve ser a mesma da cláusula GROUP BY.

D) Usando o MySQL GRUPO com a cláusula HAVING exemplo

Para filtrar os grupos devolvidos por GROUP BY cláusula, você pode usar um HAVING cláusula. A consulta a seguir usa a cláusula HAVING para selecionar o total de vendas dos anos após 2003.,

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

A cláusula GROUP BY: MySQL vs. padrão SQL

Padrão SQL não permite que você use um alias GROUP BY cláusula, no entanto, o MySQL suporta isso.

Por exemplo, a seguinte consulta extrai o ano a partir da data de ordem. Primeiro, ele usa year como um alias de expressão YEAR(orderDate) e, em seguida, usa o year nome GROUP BY cláusula., Esta consulta não é válida no SQL padrão.

Experimentá-Lo

o MySQL também permite que você classificar os grupos em ordem crescente ou decrescente ordens, enquanto o padrão SQL não. A ordem padrão é ascendente., Por exemplo, se você deseja obter o número de pedidos por status e classificar o estado em ordem decrescente, você pode usar o GROUP BY cláusula com DESC como a consulta a seguir:

Code language: SQL (Structured Query Language) (sql)

Experimentá-Lo

Repare que usamos DESC GROUP BY cláusula para classificar o status, em ordem decrescente., Nós também pode especificar explicitamente ASC GROUP BY cláusula para classificar os grupos por estado, em ordem crescente.

neste tutorial, mostramos – lhe como usar a cláusula MySQL GROUP BY para agrupar linhas em subgrupos com base em valores de colunas ou expressões.

  • este tutorial foi útil?
  • YesNo

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Ir para a barra de ferramentas