Összegzés
SELECT SUM(fizetes) AS Osszfizu FROM Szemely;
Az avg() függvény átlag számítására való. Szám adatok átlagát kaphatjuk meg vele.
SELECT avg(fizetes) AS AtlagFizetes FROM Szemely;
SELECT format(szuletes, 'MM-DD') AS Szuletes FROM Szemely ;
SELECT format(szuletes, "yyyy") FROM Dolgozok
SELECT format(now(), "YYYY")
Access hónap, nap és év forma:
SELECT format(szuletes, "mmmm dd, yyyy") FROM Dolgozok
Eredménye például:
május 04, 1950 |
november 26, 1974 |
október 18, 1974 |
augusztus 23, 1954 |
MySQL hónap, nap és év forma:
SELECT date_format(szuletes, "%M %d, %Y") FROM Dolgozok
May 04, 1950 |
November 26, 1974 |
October 18, 1987 |
August 23, 1954 |
Access óra, perc napszak:
SELECT format(now(), "hh:mm AMPM")
Eredménye például:
12:41 du. |
MySQL óra, perc napszak:
SELECT date_format(now(), "%H:%i %p")
Eredménye például:
12:56 PM |
SELECT YEAR(now()) - YEAR(szuletes) AS Életkor FROM Szemelyek WHERE nev="Archer Vitália"
Lehetséges eredmény:
53
Esetleg:
SELECT FLOOR(datediff(now(), szuletes )/365.25) AS Életkor FROM Szemelyek WHERE nev="Archer Vitália"
Kicsit pontosabban:
SELECT from_days(datediff(now(), szuletes )) AS Életkor FROM Szemelyek WHERE nev="Archer Vitália"
Lehetséges eredmény:
0052-09-03
Esetleg így:
SELECT DATE_FORMAT( FROM_DAYS( DATEDIFF(CURRENT_DATE, szuletes) ), '%y év %m hónap %d nap' ) AS Életkor FROM Szemelyek WHERE nev="Archer Vitália"
Lehetséges eredmény:
52 év 09 hónap 03 nap
Na meg így:
SELECT FLOOR(ABS(DATEDIFF(CURRENT_TIMESTAMP, szuletes))/365.25) AS Életkor FROM Szemelyek WHERE nev="Archer Vitália"
Lehetséges eredmény: 52
Esetleg a select után:
... DateDiff("yyyy", szuletes, Now()) ...
Csak MySQL-en:
SELECT format(35.12345, 3)
A kimenet: 35.123
Access:
SELECT format(fizetes, "Scientific") FROM Dolgozok;
Accessben lehetséges állandók:
Szeretnénk megszámolni bizonyos adatokból hány darab van. Erre használható a count() függvény:
select count(az) as Szolnokiak from Szemely where telepules = "Szolnok";
Azonos településneveket csak egyszer számoljunk:
select count(distinct telepules) from dolgozok;
Legkisebb, legnagyobb kiválasztása
Szemely tábla felépítése:
az | nev | telepules | cim | szuletes | belepes | fizetes | diploma |
---|---|---|---|---|---|---|---|
1 | Nagy József | Szolnok | Tél u. 23. | 1975-08-25 | 2004-03-01 | 570000 | 1 |
2 | Pék Réka | Miskolc | Árny u. 29. | 1977-02-03 | 2006-04-01 | 389000 | 1 |
3 | Kis Mária | Debrecen | Vértes u. 20. | 1981-04-01 | 2005-03-27 | 680000 | 1 |
4 | Érdek Júlia | Szeged | Bíró u. 25. | 1982-03-08 | 2008-09-01 | 190000 | 0 |
5 | Boros Evelin | Szolnok | Barát u. 78. | 1988-02-22 | 2001-01-01 | 850000 | 0 |
6 | Lórem Kinga | Szeged | Pilisi út 17. | 1973-08-02 | 2000-01-01 | 878000 | 1 |
7 | Fix Béla | Szolnok | Burkus u. 80. | 1991-11-05 | 2008-01-01 | 351000 | 1 |
Legkorábban jött dolgozó:
SELECT MIN(belepes) FROM `Szemely`
Legkésőbb jött dolgozó:
SELECT MAX(belepes) FROM `Szemely`
Legkevesebb fizetés:
SELECT MIN(fizetes) FROM `Szemely`
Legtöbb fizetés:
SELECT MAX(fizetes) FROM `Szemely`
A LIMIT direktíva használata.
Legkevesebb fizetés:
SELECT fizetes FROM Szemely ORDER BY fizetes LIMIT 1
Legtöbb fizetés:
SELECT fizetes FROM Szemely ORDER BY fizetes DESC LIMIT 1
Az Access adatbázis-kezelőkben a SELECT után tett TOP 1 valósítja meg ugyanezt.
Egy karaktersorozat vagy egy szám hány darab karakterből vagy számjegyből áll:
SELECT len(nev) FROM Dolgozok
Ha nem szűrünk, automatikusan rekordonként mutatja.
MySQL-ben length:
SELECT LENGTH(nev) FROM Dolgozok
Vonjuk ki egyik dátumból a másikat (Mariadb 10-től): Legyen két dátum mező, belepes és kilepes. Szeretnénk megtudni hány nap telt el a kettő között:
select datediff(belepes, kilepes)
select datediff('2021-01-15', '2021-03-15');
Az eredmény: -59
Az abs() függvénnyel vehetjük az abszolút értékét.
select year(now); select year(szuletes);
select month(now); select month(szuletes);
select day(now); select day(szuletes);
select hour(now); select hour(szuletes);
select minute(now); select minute(szuletes);
select second(now); select second(szuletes);
A következőkben a dolgozókat szeretnénk megszámolni településenként:
SELECT COUNT(az) AS "Dolgozok telepulesenkent" FROM Szemely GROUP BY telepules;