Funzione somma SQL: SOMMA. Funzioni di aggregazione SQL: SUM, MIN, MAX, AVG, COUNT

Golovna / Nalashtuvannya

SQL - Lezione 11

Le funzioni di somma parziale sono anche chiamate funzioni statistiche, aggregate o di somma parziale. Queste funzioni completano l'insieme di righe per il figlio e la rotazione di un valore. Ci sono meno di cinque di queste funzioni:
  • AVG() La funzione ruota la media.

  • COUNT() La funzione ruota il numero di righe nella colonna.

  • MAX() La funzione ruota il valore più grande nella colonna.

  • MIN() La funzione ruota il valore più piccolo nella colonna.

  • SUM() La funzione ruota il valore della somma dell'intervallo.

Da uno - COUNT () - ci siamo già conosciuti nella lezione 8. Conosciamo subito il reshtoyu. Diciamo che volevamo scoprire il prezzo minimo, massimo e medio dei libri nel nostro store. Proprio dalle tabelle dei prezzi (prezzi) è necessario prendere il valore minimo, massimo e medio del prezzo. Richiesta semplice:

SELECT MIN(prezzo), MAX(prezzo), AVG(prezzo) DA prezzi;

Ora, vogliamo sapere, quanti soldi ci sono stati portati dall'impiegato postale di "Budynok druk" (id=2). Ripiegare una tale richiesta non è così facile. Calmiamoci, come piegare lo yoga:

1. Dalla tabella delle Consegne (in entrata), selezionare gli identificatori (id_incoming) delle consegne, come richiesto dal capo postale "Budynok druku" (id=2):

2. Ora, dalle tabelle nel giornale di registrazione fornitura (magazine_incoming), è necessario selezionare la merce (id_product) e la quantità che è stata trovata nell'articolo 1 della fornitura. Tobto sarà richiesto dal comma 1 della caparra:

3. Ora dobbiamo aggiungere alla tabella risultante i prezzi dei prodotti trovati, che vengono salvati nelle tabelle dei prezzi. Ecco perché dobbiamo combinare le tabelle Rivista delle consegne (magazine_incoming) e Prezzi (prezzi) per articolo id_prodotto:

4. Alla tavola, che è apparsa, è evidente che la Suma non è appesa, tobto importo calcolato. La possibilità di creare tali dichiarazioni è stata inoltrata a MySQL. Per i quali è meno necessario indicare nell'indagine cosa si deve contare e cosa è colpevole di contare. Il nostro culo ha una tale stufa chiamata summa, e il conteggio dei vini sarà tra quantità e prezzo stovptsіv. Il nome del nuovo edificio è avvallato dalla parola AS:

SELECT magazine_incoming.id_product, magazine_incoming.quantity, prezzi.price, magazine_incoming.quantity*prices.price COME summa DA magazine_incoming, prezzi DOVE magazine_incoming.id_product=prices.id_product AND id=com

5. Bene, siamo rimasti con meno summa e sappiamo che, per la somma di denaro, l'impiegato postale di "Budinok to Druk" ci ha portato delle merci. La sintassi per l'utilizzo della funzione SUM() è:

SELEZIONA SOMMA(nome_tabella) DA nome_tabella;

Im'ya stovptsya per noi v_domo - summa e l'asse del nome della tabella non abbiamo, quindi non sarà il risultato della richiesta. Cos'è il lavoro? Per tali comportamenti, MySQL ha una dichiarazione. Give - tse chiede un voto, quale si spera in un nome univoco e quale può essere salvato nella banca dati, per un ulteriore voto.

Sintassi per allertare un attacco:

CREATE VIEW View_name AS query;

Salviamo la nostra richiesta come riportato da report_vendor:

CREATE VIEW report_vendor COME SELECT magazine_incoming.id_product, magazine_incoming.quantity, prezzi.prezzo, magazine_incoming.quantity*prices.price COME summa DA magazine_incoming, prezzi DOVE magazine_incoming.id_com=product_com );

6. L'asse può ora essere ruotato dalla funzione somma SOMMA():

SELECT SUM(summa) FROM report_vendor;

Asse mi e raggiunto il risultato, però, per il quale abbiamo avuto modo di vincere i contributi, lo snodo, le colonne, che si contano, e le manifestazioni. Quindi, a volte per otrimannya il risultato dovrebbe essere pensato in nessun altro modo. Poi ci siamo imbattuti in due argomenti molto importanti: contare i punti principali di quel fenomeno. Parliamo di loro in una relazione.

Conteggio campi (stowpt)

Sul calcio abbiamo esaminato il campo matematico di oggi. Qui vorrei aggiungere che è possibile vincere come operazione di moltiplicazione (*), e vodnimannya (-), і addizione (+), і rozpodіl (/). Sintassi avanzata:

SELECT stow_name_1, stow_name_2, stow_name_1*stow_name_2 AS nome_stow enumerato FROM nome_tabella;

Un'altra sfumatura è la parola chiave AS, che è stata scelta per il compito di contare il nome della colonna. In effetti, per l'aiuto di quale parola chiave, vengono forniti pseudonimi per indicare se sono stovptsіv. È necessario? Per una lettura veloce del codice. Ad esempio, la nostra manifestazione potrebbe assomigliare a questa:

CREATE VIEW report_vendor AS SELECT A.id_product, A.quantity, B.price, A.quantity*B.price AS summa FROM magazine_incoming AS A, prezzi AS B WHERE A.id_product= B.id_product AND id_incoming= (SELECT id_ining WHERE id_vendor = 2);

Aspetta, cosa è così riccamente breve e più saggio.

Aspetto

Abbiamo esaminato la sintassi della creazione delle manifestazioni. Dopo la creazione delle loro manifestazioni, è possibile rivendicare proprio come un tavolo. Per vincere davanti a loro, per filtrare e ordinare i dati, per sommarsi l'uno all'altro. Da un lato, è anche un buon modo per risparmiare bibite pieghevoli, che spesso si bloccano (come il nostro sedere).

Ale sled memory, scho zavlennya - tse tables, quindi de stinks salva i dati, è meno probabile che li prenda da altri tavoli. Innanzitutto, se modifichi i dati nelle tabelle, cambieranno anche i risultati della presentazione. E in modo diverso, per una richiesta prima dell'archiviazione, ci sono richieste di dati necessari, in modo che la produttività del DBMS diminuisca. Tozh zlovzhivat loro non varto.

Come riconosci il numero di modelli di PC rilasciati dal tuo partner? Come calcolare il valore medio su un computer, come trovare le stesse caratteristiche tecniche? Sulla base del numero e di altre informazioni nutrizionali relative alle effettive informazioni statistiche, puoi chiedere aiuto funzioni di subbag (aggregato).. La norma trasferisce le seguenti funzioni aggregate:

Tutte le funzioni ruotano lo stesso valore. Con quale funzione CONTEGGIO, MINі MASSIMO zastosovnі prima di qualsiasi tipo di dati, a quell'ora SOMMAі AVG vikoristovuyutsya meno per i campi numerici. Residualità tra funzioni CONTARE(*)і CONTARE(<имя поля>) Credo che un amico dietro un frocio non rinunci al valore NULL.

culo. Scopri il prezzo minimo e massimo per un personal computer:

culo. Scopri il numero effettivo di computer emessi dallo scriba A:

culo. Come possiamo dire che il numero di diversi modelli, che sono elencati dal tipo A, può essere formulato come un rango offensivo (in base a ciò, il modello di skin viene registrato una volta nella tabella Prodotto):

culo. Per conoscere il numero di modelli diversi attualmente consentiti dallo strumento di selezione A. Il numero è simile a quello in primo piano, nel qual caso è necessario indicare il numero totale di modelli consentiti dallo strumento di selezione A.

Affinché la selezione degli indicatori statistici vinca solo valori unici, argomenti di funzioni aggregate puoi vicista parametro DISTINTO. Secondo parametro TUTTI vikoristovuєtsya per umovchannyam e trasmette agli sciocchi tutti i significati che girano nella colonna. Operatore,

Come dobbiamo prendere in considerazione il numero di modelli di PC, viroblenih pelle virobnik, allora è necessario vikoristovuvat proposta GROUP BY, sintatticamente offensivo proposte DOVE.

Proposta GROUP BY

Proposta GROUP BY vikoristovuetsya vyznachennya gruppi di file vihіdny, che possono zastosovuvatisya funzioni aggregate (COUNT, MIN, MAX, AVG e SUM). Come proposta del giorno, e funzioni aggregate vittoriose, tutti i passaggi con i nomi, indovinati SELEZIONARE, a causa dell'inclusione in funzioni aggregate e le funzioni zastosovuvatysya sull'intero set di righe, come se corrispondessero al predicato della richiesta. In un altro modo, tutte le colonne dell'elenco SELECT, non è entrato nella funzione aggregata devono essere specificati a proposta GROUP BY. Per questo motivo, tutte le righe sono divise in gruppi, caratterizzati dalle stesse combinazioni di valori in queste colonne. Da lì al gruppo skin, le funzioni aggregate verranno bloccate. Tieni presente che in GROUP BY tutti i valori NULL sono trattati come uguali. quando si raggruppano i campi, che dovrebbero contenere valori NULL, tutte queste righe rientreranno nello stesso gruppo.
Yakscho per proposte esplicite GROUP BY, nell'istruzione SELECT funzioni aggregate giornaliere, quindi basta girare una riga dal gruppo di skin. Questa possibilità, l'ordine della parola chiave DISTINCT, può essere selezionata per escludere le righe duplicate dal set di risultati.
Diamo un'occhiata a un semplice esempio:
SELECT modello, COUNT(modello) AS Qty_model, AVG(prezzo) AS Avg_price
DA PC
GROUP BY modello;

A richiesta del modello skin del PC vengono indicate la quantità e la qualità media. Le righe con gli stessi valori del modello (numero del modello) qualificano il gruppo e il numero di valori e il valore medio per il gruppo di skin vengono calcolati sull'output SELECT. Il risultato della digitazione apparirà con una tabella:
modello Qtà_modello Prezzo_media
1121 3 850.0
1232 4 425.0
1233 3 843.33333333333337
1260 1 350.0

Yakby a SELECT letterale stovpets z date, sarebbe possibile contare il numero di indicazioni di una data skin specifica. Per cui è necessario aggiungere la data come raggruppamento, e anche le funzioni aggregate sono state calcolate per il valore della combinazione skin (modello-data).

Іsnuє spratto di cantanti Regole per vincere le funzioni aggregate:

  • Di conseguenza non preso la stessa riga(o una riga per il gruppo), quindi i dati di output per il calcolo, indipendentemente dal fatto che provengano dalle funzioni aggregate per giorno. E qui il risultato delle funzioni di conteggio sarà zero e il risultato di altre funzioni sarà NULL.
  • Discussione funzione aggregata non puoi definire tu stesso le funzioni aggregate(funzione nella funzione). Totò. in una bevanda non è possibile, diciamo, raggiungere un massimo di valori medi.
  • Risultato della funzione di digitazione COUNT є numero intero(INTEGER) Altre funzioni aggregate riducono il tipo di dati che vengono elaborati.
  • Allo stesso modo, con la funzione SOMMA, viene sottratto il risultato, che sposta il valore massimo del tipo di dati, che vince, incolpa Scusi.

Padre, ti chiedo di non vendicarti proposte GROUP BY, poi funzioni aggregate, incluso in SELEZIONA proposta; Come chiedere vendetta proposta GROUP BY, righe di tipizzazione skin, che possono essere lo stesso valore di una colonna o di un gruppo di colonne, attività per proposte GROUP BY, diventa un gruppo, quello funzioni aggregate vykonuyutsya gruppo skin okremo.

Proposta AVERE

Yakscho Dove la clausola definisce un predicato per filtrare le righe, quindi proposta AVERE ristagnare dopo il raggruppamento per una designazione simile a un predicato che filtra i gruppi per i valori funzioni aggregate. Questa proposizione è necessaria per la ri-verifica del significato, in quanto viene sottratta per aiuto funzione aggregata non poche righe di record, registrati parole DA, un un gruppo di tali righe. Pertanto, una tale nuova verifica non può essere DOVE.

Vchimosya pіdbivati ​​​​pіdbags. Ciao, non i risultati del calcolo SQL, ma i sottobagagli dei valori delle tabelle del database. Le funzioni SQL aggregate variano in base al valore fino a un singolo valore di risultato. Le funzioni di aggregazione SQL SUM, MIN, MAX, AVG e COUNT vengono utilizzate più spesso. Ci sono due differenze tra le funzioni di aggregazione. Primo: le funzioni aggregate sono vittoriose da potenti forze e trasformano un valore risultante. Altro: le funzioni di aggregazione vengono abbinate all'operatore SQL GROUP BY, ovvero raggruppando per campi (stand) per sottrarre i valori risultanti dal gruppo di skin. Diamo un'occhiata all'inizio della scomposizione delle funzioni aggregate senza raggruppamento.

Funzione SOMMA SQL

La funzione SQL SUM ruota la somma dei valori di spanning di una tabella di database. Vaughn può solo zastosovuvatisya fino a stovptsіv, il significato di un tale numero. La richiesta di SQL di recuperare il sumi risultante inizia in questo modo:

SELEZIONA SOMMA (IM'I_COLUMN) ...

Dopodiché, segui FROM (IM'YA_TABLES), e poi dopo un costrutto WHERE aggiuntivo, puoi anche specificare la mente. Inoltre, DISTINCT può essere scritto prima del nome della colonna, il che significa che solo i valori univoci sono protetti. Per il blocco vengono rimborsati tutti i valori (per i quali è possibile specificare soprattutto non DISTINCT, ma ALL, ma la parola ALL non è vincolante).

Se vuoi scaricare il database di questa lezione su MS SQL Server, se il DBMS non è installato sul tuo computer, puoi installarlo, istruzioni croccanti .

Lavoriamo con il database delle aziende - Company1. Script per la creazione di dati di database ts_єї, tabella її e tabella di masterizzazione danimi - in file per cim send .

Esempio 1.Є banca dati di aziende con dati su її pіdrozdіli e svіrobіtnikіv. La tabella Staff contiene anche i dati sulla retribuzione dei reclutatori. La selezione dalla tabella può assomigliare a questa (per ingrandire l'immagine, fare clic su di essa con il tasto sinistro del mouse):

Per fissare la somma delle somme delle buste paga eccedenti, è possibile anticipare la richiesta (su MS SQL Server - dal front design di USE company1;):

SELEZIONA SOMMA (stipendio) DA Staff

Tsey chiede il turno del valore 287664.63.

E adesso . A destra, inizia già a semplificare le cose, avvicinandole alla quiete, che è pratica.

Funzione SQL MIN

La funzione SQL MIN utilizza anche un numero di valori per ruotare il valore medio minimo del valore. Questa funzione ha una sintassi simile a quella della funzione SOMMA.

Esempio 3. Il database è la tabella, la stessa dell'applicazione 1.

È necessario scoprire il salario minimo per lo spіvrobіtnikіv vіddіl z numero 42. Per chi scriviamo la richiesta anticipata (su MS SQL Server - con la società USE di progettazione anteriore1;):

Il valore restituito è 10.505,90.

Rinnovo giusto per l'autosufficienza. Per coloro che ne hanno il diritto, è necessario, oltre alla tabella Staff, anche la tabella Org, per vendicare i dati sugli aggiornamenti dell'azienda:


Esempio 4. La tabella Org viene aggiunta alla tabella Staff, che vendica i dati degli aggiornamenti dell'azienda. Vivesti numero minimo di rokiv, opratsovanyh uno spіvrobіtnik vіddіlі, rastashovanuyu vicino a Bostonі.

Funzione SQL MAX

La funzione SQL MAX funziona allo stesso modo, quindi si fermerà se è necessario impostare il valore massimo del valore medio del sistema.

Esempio 5.

È necessario determinare lo stipendio massimo del lavoratore spivrobitnikiv con il numero 42. Per il quale scriviamo la richiesta anticipata (su MS SQL Server - con la società USE front design1;):

Leggi il valore 18352.80

vieni ora giusto per l'autosufficienza.

Esempio 6. Conosco due tavoli: Staff e Org. Introduci il nome del valore massimo della commissione, poiché ci vorrà un giro dal capofila, che appartiene al gruppo dei pagamenti (Divisione) Orientale. Vikoristati UNISCITI (creazione tabelle).

Funzione SQL AVG

Si fa riferimento alla sintassi per le descrizioni delle funzioni di inoltro come corretta e simile alle funzioni SQL AVG. Questa funzione ruota il valore medio del valore medio dello spat.

Esempio 7. La base di dati è quella tabella, la stessa dei mozziconi anteriori.

Scopriamo l'esperienza lavorativa media degli spivrobitnik con il numero 42. Per chi scriviamo una richiesta offensiva (su MS SQL Server - con il design frontale di USE company1;):

Il risultato sarà un valore di 6,33

Esempio 8. Pratsiyuemo con un tavolo - Personale. Inserisci lo stipendio medio dei praticanti con esperienza da 4 a 6 anni.

Funzione CONTEGGIO SQL

La funzione SQL COUNT ruota il numero di record in una tabella di database. Se si specifica nella query SELECT COUNT(IM_COLUMN) ..., il risultato sarà il numero di record senza record di uranio, che hanno valori NULL (non definiti). Se vinci come argomento con una z e inizi a chiedere SELECT COUNT(*) ..., il risultato sarà il numero di tutti i record (righe) nella tabella.

Esempio 9. La base di dati è quella tabella, la stessa dei mozziconi anteriori.

È necessario scoprire il numero di tutti gli spivrobitnik, come detrarre le commissioni. Il numero di colonne, per le quali i valori di Comm non sono NULL, a sua volta, è più avanti (su MS SQL Server - con la costruzione anteriore USE company1;):

SELEZIONA COUNT (Comm) DA Staff

Il risultato sarà il valore 11.

culo 10 La base di dati è quella tabella, la stessa dei mozziconi anteriori.

Se è necessario riconoscere il numero totale di record nella tabella, verrà automaticamente richiesto come argomento della funzione COUNT (su MS SQL Server - con la società USE front construction1;):

SELEZIONA CONTEGGIO (*) DA Staff

Il risultato sarà il valore 17.

Nell'offensiva giusto per una visione indipendenteè necessario vikoristovuvat pidzapit.

Esempio 11. Pratsiyuemo con un tavolo - Personale. Vivesti è pratsіvnіv in vіddіlі planuvannya (Pianura).

Aggrega le funzioni contemporaneamente da SQL GROUP BY (raggruppamento)

Ora esaminiamo le funzioni aggregate con l'operatore SQL GROUP BY. L'operatore SQL GROUP BY viene utilizzato per raggruppare i valori risultanti delle colonne nelle tabelle del database. Sul posto lezione, compiti a quale operatore.

Pratsyuvatimemo con banca dati "Portale goloshen 1". Script per la creazione di tsієї database, її tabelle e masterizzazione di tabelle di dati - file per cim send .

culo 12 Inoltre, il database del portale è sbalordito. Vaughn per vendicare il tavolo degli annunci, come per vendicare i dati sulla calunnia, archiviando per la giornata. La sezione Categoria serve a vendicare i dati sulle grandi categorie di calunnia (ad esempio, Nerukhomist), e la sezione Parti riguarda altre parti che possono essere incluse fino alla categoria (ad esempio, parti di Appartamenti e Dacie sono parti del Nerukhomist categoria). Stovpets Units per raccogliere dati sul numero di stordimenti e Stovpets Money - circa un centesimo, preso per aver archiviato uno stordimento.

CategoriaparteUnitàI soldi
TrasportoMacchine110 17600
indisciplinaAppartamenti89 18690
indisciplinaCottage estivi57 11970
TrasportoMoto131 20960
Budmaterialsdoshki68 7140
Ingegnere elettricoTelevisori127 8255
Ingegnere elettricoFrigoriferi137 8905
BudmaterialsReg112 11760
DozvilleLibri96 6240
indisciplinaBudinki47 9870
Dozvillemusica117 7605
DozvilleGiochi41 2665

L'operatore Vykoristovuyuchi SQL GROUP BY, conosce la somma dei penny, otrimanih per aver presentato una calunnia nella categoria della pelle. Scriviamo una richiesta offensiva (su MS SQL Server - dalla costruzione frontale USE adportal1;):

SELEZIONA Categoria, SOMMA (Denaro) COME Denaro DA ANNUNCI GRUPPO PER Categoria

culo 13 Il database è il tavolo stesso, che si trova nella parte anteriore.

Operatore malvagio SQL GROUP BY, z'yasuvati, in questa parte della categoria della pelle è stato registrato il maggior numero di vomiti. Scriviamo una richiesta offensiva (su MS SQL Server - dalla costruzione frontale USE adportal1;):

SELEZIONA Categoria, Parte, MAX (Unità) COME Massimo DA ANNUNCI GRUPPO PER Categoria

Il risultato sarà una tabella:

È possibile prendere Subsumkovy e valori individuali in una tabella combinare gli esiti delle richieste di aiuto dell'operatore dell'UNIONE.

Database relazionali e linguaggio SQL

© 2022 androidas.ru - Tutto su Android