Quando você usa qual em geral? Exemplos são altamente encorajados!
Estou me referindo ao MySql, mas não consigo imaginar o conceito diferente em outro DBMS
ORDER BY altera a ordem em que os itens são devolvidos.
GROUP BY agregará registros pelas colunas especificadas, o que permite executar funções de agregação em colunas não agrupadas (como SUM, COUNT, AVG etc.).
ORDER BY altera a ordem em que os itens são devolvidos.
GROUP BY agregará registros pelas colunas especificadas, o que permite executar funções de agregação em colunas não agrupadas (como SUM, COUNT, AVG etc.).
fonte
age
coluna, com Peters com idades diferentes e a consulta for SELECT NAME, IDADE DO GRUPO DE TABELAS POR NOME?ORDER BY: ordena os dados em ordem crescente ou decrescente.
Considere a tabela CLIENTES :
A seguir, é apresentado um exemplo, que classificaria o resultado em ordem crescente por NAME:
Isso produziria o seguinte resultado:
GRUPO POR: organize dados idênticos em grupos.
Agora, a tabela CLIENTES possui os seguintes registros com nomes duplicados:
se você quiser agrupar nomes idênticos em nome único, a consulta GROUP BY será a seguinte:
Isso produziria o seguinte resultado: (para nomes idênticos, escolheria o último e finalmente classificaria a coluna em ordem crescente)
como você deduziu que é inútil sem funções SQL como sum, avg etc.
portanto, siga esta definição para entender o uso adequado do GROUP BY:
Agora, se você deseja saber o valor total do salário de cada cliente (nome), a consulta GROUP BY seria a seguinte:
Isso produziria o seguinte resultado: (soma dos salários de nomes idênticos e classifique a coluna NAME após remover nomes idênticos)
fonte
A diferença é exatamente o que o nome indica: um grupo executando uma operação de agrupamento e uma ordem por classificação.
Se o fizer
SELECT * FROM Customers ORDER BY Name
, você obtém a lista de resultados classificada pelo nome do cliente.Se você
SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActive
receber uma contagem de clientes ativos e inativos. O grupo agregou os resultados com base no campo que você especificou.fonte
Eles têm um significado totalmente diferente e não estão realmente relacionados.
ORDER BY permite classificar o conjunto de resultados de acordo com critérios diferentes, como primeiro classificar por nome de az e, em seguida, classificar pelo preço mais alto para o mais baixo.
(PEDIDO POR nome, preço DESC)
GROUP BY permite que você pegue seu conjunto de resultados, agrupe-o em grupos lógicos e execute consultas agregadas nesses grupos. Por exemplo, você pode selecionar todos os funcionários, agrupá-los por local de trabalho e calcular o salário médio de todos os funcionários de cada local de trabalho.
fonte
Simples,
ORDER BY
ordena os dados eGROUP BY
grupos ou combina os dados.ORDER BY
ordena o conjunto de resultados conforme o campo mencionado, por padrão, em ordem crescente.Suponha que você esteja disparando uma consulta
ORDER BY (student_roll_number)
, pois ela mostrará o resultado em ordem crescente dos números de rolo dos alunos. Aqui, astudent_roll_number
entrada pode ocorrer mais de uma vez.No
GROUP BY
caso, usamos isso com funções agregadas, e agrupa os dados de acordo com a função agregada, e obtemos o resultado. Aqui, se a nossa consultaSUM (marks)
contiver,GROUP BY (student_first_name)
ela mostrará a soma das marcas dos alunos pertencentes a cada grupo (onde todos os membros de um grupo terão o mesmo nome).fonte
GROUP BY é usado para agrupar linhas em uma seleção, geralmente ao agregar linhas (por exemplo, calcular totais, médias, etc. para um conjunto de linhas com os mesmos valores para alguns campos).
ORDER BY é usado para ordenar as linhas resultantes de uma instrução select.
fonte
Alguns bons exemplos lá. Assim como adiciono o meu no webcheatsheet, que fornece bons exemplos claros, além de permitir que você execute seu próprio SQL.
Ordem SQL por
Agrupar por SQL
fonte
ORDER BY
mostra um campo em ordem crescente ou decrescente. EnquantoGROUP BY
mostra os mesmos nomes de campo, IDs etc em apenas uma saída.fonte
fonte
Note-se que
GROUP BY
nem sempre é necessário, pois (pelo menos no PostgreSQL e provavelmente em outras variantes do SQL) você pode usarORDER BY
com uma lista e ainda pode usarASC
ouDESC
por coluna ...fonte