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

7. Técnicas estatísticas

(1) Calcular estatísticas descritivas
Características gerais:
número de observações, somas e seus intervalos (valores mínimos e máximos)
Medidas de tendência central, como média, mediana e moda
Medidas de mudança, como desvio padrão e
estatísticas de variância:
Mediana:
Consultando o número de observações estatísticas, de acordo com esse número, pode-se determinar se o cálculo da mediana precisa de um ou dois valores, e quantos deles são classificados no conjunto ordenado de observações, incluindo ordem A consulta
do por cláusula classifica as observações e usa a cláusula de limite para extrair um ou dois valores no meio
. Se houver apenas um valor do meio, então é a mediana, e se houver dois valores do meio, então eles precisam ser solicitado
Número ímpar: selecione a pontuação de t ordenada pelo limite de pontuação 18,1
Número par: selecione a pontuação de t ordenada pelo limite de pontuação 18,2 Número moderado
: selecione a pontuação, conte (pontuação) como frequência do teste grupo de pontuação por pontuação ordem por frequência desc
função agregada:
média: média()
variação:
variação geral: VAR_POP()
variação de amostragem: VAR_SAMP()
desvio padrão:
desvio padrão geral: STDDEV_POP()
desvio padrão de amostragem: STDDEV_SAMP ()
(2) agrupar estatísticas descritivas agrupar
por
(3) Gerar distribuição de frequência
De acordo com as informações resumidas do conjunto de dados, derivar a distribuição de frequência
Distribuição de frequência: selecione pontuação, contagem (pontuação) como contagens do grupo de pontuação de teste por
porcentagem de pontuação em vez de contagem para gerar distribuição de frequência relativa: definir @n =(selecionar contagem(pontuação) do escore do teste);selecionar pontuação,(contar(pontuação) 100)/@n como porcentagem do grupo de escore do teste por pontuação;
(4) Estatísticas de valores ausentes Contar
o número de valores nulos em a coleção
count( ) Conta o número total de linhas, count(score ) conta as pontuações sem perder, a diferença entre os dois valores é o número de pontuações ausentes e a porcentagem de pontuações ausentes pode ser calculada pela diferença com o total:
selecione count( ) como 'n(total)', count(score) como ' n(nonmissing)', count( )-count(score) como 'n(missing)',((count( )-count (score)) 100/count( ) como '%missing') de t;
usando sum( isnull(score)) é calculado diretamente. Se o parâmetro for nulo, a função isnull() retorna 1, caso contrário, retorna 0: select contar(
) como 'n(total)', count(score) como 'n(nonmissing)', sum(isnull(score)) como 'n(falsing)', (sum(isnull(score)) 100)/count ( ) como '% ausente' de t;
(5) Calcular regressão linear ou coeficiente de correlação
Usar funções de resumo para calcular os resultados estatísticos necessários
Calcular os itens necessários para a equação de regressão, incluindo o número de observações, a média, a soma e a soma dos quadrados para cada variável e a soma dos produtos de cada variável,
selecione
@n:=count(score) como N,
@meanX:=avg(age) como 'X average',
@sumX:=SUM(age) como 'X soma',
@ somaXX:=SUM(idade idade ) como 'X soma dos quadrados',
@meanY:=AVG(pontuação) como 'média Y',
@sumY:=SUM(pontuação) como 'soma Y',
@sumYY :=SUM(pontuação
) como 'soma Y dos quadrados',
@sumXY:=SUM( pontuação da idade) como ' soma X Y'
de testscore\G
De acordo com os itens acima, calcule a inclinação e a interceptação do
conjunto de regressão @ b:=(@n *@sumXY-@sumX*@sumY)/(@n*@sumXY-@sumX);
set @a:=(@meanY-@b*@meanX);
selecione @b como inclinação,@a como intercepto;
então a equação de regressão é:
select concat('Y=',@b,'X+',@a ) como 'regressão de mínimos quadrados';
Calcular o coeficiente de correlação:
select (@n sumXY-@sumX @sumY)/SQRT((@n*@sumXY-@sumX*@sumX) (@n @sumXY-@sumY* @sumY )) como correlação
(6) Gera números aleatórios
Use a função rand(), que pode gerar números aleatórios entre 0 e 1
select rand()
(7)
Ordem aleatória por rand()
selecione nome de t ordem por rand() ;
(8) Selecionar dados aleatoriamente
Randomize o valor e, em seguida, selecione o primeiro (se forem necessários vários valores, selecione os primeiros): ordene por rand(), adicione limite 1, você pode selecionar o primeiro valor (
9 ) Calcular a diferença entre duas linhas adjacentes
Use a autojunção da tabela para obter duas linhas adjacentes e calcular a diferença entre elas:
selecione t1.id as id1,t2.id as id2,
t2.date,
t1. ab as ab1 ,t2.ab como ab2,
t1.h como h1,t2.h como h2,
t2.ab-t1.ab como abdiff,
t2.h-t1.h como hdiff,
truncate(ifnull((t2.h-t1.h)/(t2.ab -t1.ab),0),3) como ba
de player_states como t1 junção interna player_states como t2
em t1.id+1=t2.id
ordene por t1.id;
(10) Encontre a soma cumulativa e a média móvel
usando a tabela The a autoconexão de gera um conjunto contínuo de observações em cada ponto de medição e, em seguida, processa cada conjunto de valores usando a função agregada para calcular a soma ou média
selecione t1.stage,t1.km,sum(t2.km) como 'cum.km'
from marathon as t1 inner join marathon as t2
on t1.stage>=t2.stage
group by t1.stage;
(11) Especifique o método de classificação
para determinar a classificação e, em seguida, organize os valores​​​em a ordem desejada e especifique a classificação de acordo com o método de classificação
Simples Use o número da linha para atribuir a classificação ao valor no conjunto ordenado:
set @rownum:=0;
selecione @rownum:=@rownum+1 como classificação, pontuação de t ordem por pontuação desc;
esta classificação não leva em consideração a mesma classificação (ou seja, vários valores idênticos)
para aumentar a classificação apenas quando os valores mudam (mesma pontuação classifica a mesma):
definir @rank=0,@prev_val=NULL;
selecionar @rank:=if(@prev_val=score,@rank,@rank+1) como rank,@prev_val:=score como pontuação de t ordem por pontuação desc; por
linha classifica os valores e, caso o mesmo valor seja encontrado, define a classificação de todos os valores idênticos ao número da linha do primeiro valor:
set @rownum=0,@rank=0,@prev_val=NULL
select @rownum: =@rownum+1 como linha,
@rank:=if(@prev_val<>pontuação,@rownum,@rank) como classificação,
@prev_val:=pontuação como pontuação
da ordem t por pontuação desc;

Acho que você gosta

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