Základní SQL dotazy – Přehled selectů pro začátečníky

Dnes tu mám článek určený pro změnu začátečníkům. Bude plný příkladů sql dotazů s tím, že si to dáme od těch nejzákladnějších a postupně budeme přitvrzovat. SQL dotazy budou seřazeny chronologicky podle obtížnosti. Postupně budu přidávat další

1 Jednoduchý sql dotaz bez podmínek

Dotaz s výběrem všech sloupců pomocí * bez omezujících podmínek (tutoriál o select klauzuli zde):

SELECT *
FROM [Temp].[dbo].[udv_SalesByProducts];

2 SQL dotazy s podmínkou ve WHERE

Dotaz s omezující podmínkou na rok 2010 ve where (tutoriál o where klauzuli zde):

SELECT *
FROM [Temp].[dbo].[udv_SalesByProducts]
WHERE Rok = '2010';

3 Složená podmínka ve WHERE

SQL dotaz kde jsme využili spoustu podmínek a některé základní operátory IN, BETWEEN, LIKE a >

SELECT *
FROM [Temp].[dbo].[udv_SalesByProducts]
WHERE ProduktSubKategorie LIKE ('%bike%')
AND Rok IN (2013,2014)
AND Mesic BETWEEN 1 AND 6
AND PrumernaTrzba>0;

4 Výběr prvních 10 záznamů seřazených vzestupně (ASC) nebo sestupně (DESC) pomocí ORDER BY

Vybíráme 10 (TOP) největších tržeb v roce 2013, seřazených sestupně (ORDER BY <Sloupec> DESC)

SELECT TOP 10 *
FROM [Temp].[dbo].[udv_SalesByProducts]
WHERE Rok =2013
ORDER BY Trzba DESC;

5 Agregujeme záznamy pomocí funkcí a klauzule GROUP BY

Aplikujeme agregační funkce SUM, COUNT, AVG, MAX, MIN na tržby přes kalendářní rok, podobné sql dotazy s využitím alespoň 1 agregační funkce jsou časté:

SELECT
  Rok,
  SUM(Trzba)  AS Soucet,
  COUNT(*)    AS Pocet_Zaznamu,
  AVG(Trzba)  AS Prumer,
  MAX(Trzba)  AS Maximalni_Trzba,
  MIN(Trzba)  AS Minimalni_Trzba
FROM [Temp].[dbo].[udv_SalesByProducts]
GROUP BY Rok
ORDER BY Rok ASC;

6 Základní použítí klauzule HAVING – podmínka na agregované záznamy

SQL dotaz na to, jak pomocí having omezit výsledek na záznamy, které splňují podmínku po agregaci (použijeme základ dotazu jako v příkladu viz. 5):

SELECT
Rok,
AVG(Trzba) AS Prumer
FROM [Temp].[dbo].[udv_SalesByProducts]
GROUP BY Rok
HAVING AVG(Trzba)<5000
ORDER BY Rok ASC;

Napsat komentář

Vaše emailová adresa nebude zveřejněna.