SQL - Count függvény
A kifejezés paraméter karakterlánc-kifejezés amely azonosítja a megszámlálni kívánt értékeket tartalmazó mezőt, vagy pedig kifejezés, amely a mezőben szereplő adatokból számol ki valamit. A kifejezés része lehet tábla mező neve, állandó vagy függvény (ez utóbbi lehet belső is, felhasználó által definiált is, de nem lehet másik SQL összesítő függvény). Bármilyen adatok számlálhatók, szöveges mezők is.A Count segítségével számlálhatjuk meg a lekérdezés eredményében a rekordokat. Például a Count segítségével számolhatjuk össze az egy országba teljesített rendeléseket.A kifejezésben megadhatunk számításokat is a mezőértékeken, de a Count egyszerűen csak számba veszi a rekordokat, az értékektől függetlenül.
A Count függvény nem veszi figyelembe azokat a rekordokat, amelyekben Null mezők vannak, kivéve, ha a kifejezés a csillag (*) helyettesítő karakter. Csillag használatakor a Count az összes rekordot megszámlálja, beleértve a Null mezőket tartalmazókat is. A Count(*) lényegesen gyorsabb, mint a Count([Oszlopnév]). A csillagot ne tegyük idézőjelbe (" ").
SELECT COUNT(oszlopnév) FROM táblanév;
A rekordok megszámlálása egy adott táblában:
SELECT COUNT(*) FROM táblanév;
A COUNT(DISTINCT) függvény több különböző értékeket ad össze a meghatározott oszlopból.
SELECT COUNT(DISTINCT oszlopnév) FROM táblanév;
COUNT (DISTINCT) együttműködik az Oracle-el és a Microsoft SQL Server-el, de a Microsoft Access-el nem.
'Rendelések' táblázat:
|
R_azonosító |
Rendelési dátum |
Rendelési ár |
Vevő |
|
1 |
2010/11/12 |
1000 |
Kovács |
|
2 |
2010/10/14 |
1600 |
Szabó |
|
3 |
2010/09/02 |
700 |
Szalay |
|
4 |
2010/09/03 |
300 |
Kovács |
|
5 |
2010/08/30 |
2000 |
Szabó |
|
6 |
2010/10/04 |
100 |
Kovács |
Most megszeretnénk számolni a 'Szabó' nevű vevő rendeléseit.
SELECT COUNT(Vevő) AS SzabóRendelései FROM Rendelések
WHERE Vevő='Szabó';
Az eredmény így néz ki:
|
SzabóRendelései |
|
2 |
Ha kihagyjuk a WHERE záradékot:
SELECT COUNT(*) AS RendelőkSzáma FROM Rendelések;
Az eremény így néz ki:
|
Rendelők száma |
|
6 |
Most szeretnénk megszámolni az egyéni vevők számát a "Rendelések" táblában.
SELECT COUNT(DISTINCT Vevő) AS RendelőkSzáma FROM Rendelések;
Az eredmény így néz ki:
|
Rendelők száma |
|
3 |