Interogări stânga integrate și imbricate - rezolvarea sarcinilor de zi cu zi


Adică, pentru fiecare dată, trebuie să calculam numărul de comenzi pe zi, numărul de clienți pe zi și cifra de afaceri zilnică totală.

Să începem în ordine și mai întâi vom selecta date unice prin interogare







Este tot elementar, deci să adăugăm numărul de comenzi pe zi. Acest lucru ne va ajuta cu designul ALTOIREI JOIN (sau ALEGEREA EXTERIOARA - pentru care mai place). În interiorul acestuia, nu vom folosi o tabelă gata, ci rezultatul unei interogări care va conta numerele de care avem nevoie. Deci, să încercăm să-l adăugăm

Avem deja aliasuri pentru a exclude coincidența numelor. În interiorul interogării din LEFT JOIN primim nu numai numărul de ordine, ci și o dată, astfel încât aceleași comenzi pot fi adăugate corect la aceleași date.

Este logic să presupunem că celelalte coloane sunt adăugate în același mod. Pentru numărul de cumpărători, vom adăuga încă un legător la stânga







Aici se adaugă construcția COUNT (DISTINCT) în cerere, care exclude rezultatul incorect de numărare, deoarece între 5 comenzi pentru 01.01 avem doar trei cumpărători unici!

Pentru a calcula cifra de afaceri zilnică, funcția SQL SUM () ne va ajuta.

După cum puteți vedea, este adăugat al treilea JOIN STÂNGA, care adaugă valorile de care avem nevoie. În partea principală a interogării, folosesc în mod constant operatorul AS, astfel încât coloana să aibă un nume prietenos pentru oameni. În interiorul LEFT JOIN AS se utilizează, de asemenea, pentru transferul convenabil al valorilor către interogarea principală.

În general, interogarea este executată destul de repede, dar trebuie remarcat faptul că acest lucru se datorează în primul rând simplității interogărilor imbricate și, în al doilea rând, lucrului cu o masă mică.

Deci, la ieșire avem exact ceea ce am vrut să vedem!

Cod inconfundabil pentru tine!

Navigare după înregistrări

Bună ziua! Nu pot să înțeleg, am fost o interogare SELECT `date` din` sum` GROUP BY` date` - pentru el nici o întrebare, și apoi luate din SELECT s.date, t.count AS „Numărul de comenzi“ din suma s
LEFT JOIN (data SELECT, COUNT (ord_id) AS count de la suma GROUP BY date) t ON s.date = t.date
GROUP BY s.date. ce fel de prefixe sunt acestea? de unde a venit t.count? Vă rugăm să explicați vă rog







Trimiteți-le prietenilor: