Classificação de problemas comuns de SQL (2)

5. Resuma os dados

(1) Habilidades básicas de resumo

Conte o número de linhas: count()
máximo ou mínimo: max(), min()
soma e média: sum(), avg()
remove duplicação: distinto()
(2) encontre os valores mínimo e máximo
usando duas instruções e uma variável definida pelo usuário:
defina @max=(selecione max(pop) de estados); selecione pop como 'população mais alta', nome de estados onde pop=@max; usando uma
subconsulta:
selecione pop como 'população mais alta', nome dos estados onde pop =(selecione max(pop) dos estados);
use junção de tabela:
crie tabela temporária tmp selecione max(pop) como maxpop dos estados; selecione estados.* de estados junção interna tmp nos estados .pop=tmp. maxpop
(3) Resuma por subgrupo
Use a cláusula group by para dividir as linhas em pequenos grupos
(4) Selecione apenas valores com características
tendo cláusula
(5) Determine se o valor é único contando
usando a combinação de have e count( )
Encontre valores duplicados: selecione trav_date, count(trav_date) from driver_log group by trav_date tendo count(trav_date)>1
(6) Group by expression results
Na cláusula group by, use expressões para classificar os valores do resultado
(7) Find The valor de resumo menor ou maior
Adicione uma cláusula de limite à instrução
Sem valores duplicados: classifique pelo número total do maior para o menor, certifique-se de que a linha com o maior valor sum() seja a primeira e, em seguida, use limit para selecionar a primeira linha
com valores duplicados: Use uma variável ou subconsulta definida pelo usuário para contar os tempos mais comuns e, em seguida, selecione os valores com a maior frequência (
8) Agregação baseada em data
Use a coluna de tempo em agrupar por
(9) Use agrupamento e valor de agregação geral
Use duas instruções para recuperar diferentes níveis de informações resumidas
Primeiro calcule o total de quilômetros selecione @total:=sum(miles) como 'total miles' de
driver_log
Em seguida, calcule a quilometragem para cada conjunto de valores e use a quilometragem total para calcular a porcentagem, selecione name,sum(miles) como 'miles/driver',(sum(miles)*100)/@total como 'porcentagem do total de milhas' do grupo driver_log por nome; use a subconsulta
:
selecione name,sum(miles) as 'miles/driver',(sum(miles)*100)/(selecione sum(miles) from driver_log) as 'percent of total miles' from driver_log group by name; (se você quiser exibir
valor de resumo de nível diferente, você precisa adicionar rollup na cláusula group by)
(10) Gerar um relatório contendo uma lista de resumo
Use duas instruções para recuperar diferentes níveis de informações de resumo ou use uma linguagem de programação para concluir algum trabalho e, em seguida, passar uma declaração para completar a consulta

Em suma, técnicas comuns para resumir dados: agrupar por, limitar, ter, duas instruções, subconsultas

Acho que você gosta

Origin blog.csdn.net/weixin_47970003/article/details/123698718
Recomendado
Clasificación