Cum se calculează numărul de intrări unice într-un tabel?
Cum se calculează numărul de intrări unice într-un tabel?
Încerc să execute interogarea:
cu interogare a face începe
dacă este activă atunci Închide;
SQL.Text: = "SELECT COUNT (DISTINCT Kod) din tabelul";
Deschideți;
se încheie;
în cazul în care:
Kod - câmp de masă în tabel;
Tabel - tabel privind accesul;
dar există „(operatorul lipsă) eroare de sintaxă.“.
Ce fac greșit? Dacă sintaxa nu este valabilă pentru acces, atunci există și alte opțiuni în afară de recapitularea?
Accesul este de la HELP
.
Deși expresia argument este capabil să efectueze calcule pe un câmp, Count pur și simplu returnează numărul de intrări. Această valoare nu depinde de ceea ce datele sunt conținute în aceste înregistrări.
Funcția Count nu contează înregistrări cu valorile Null, cu excepția cazului în expresia argument nu este un asterisc wildcard (*). În cazul în care se utilizează un asterisc semne, funcția Count calculează numărul total de înregistrări, inclusiv cele care conțin câmpuri goale. Functia Count (*) este mult mai rapid funcția Count ([coloana Name]). Nu trebuie să introduceți asterisc în ghilimele ( „“). Exemplul următor calculează numărul de intrări în tabelul „Comenzi“:
AS ChisloZakazov din ordinele;
În cazul în care expresiile argument sunt mai multe domenii, funcția Count are un număr de înregistrare numai dacă cel puțin unul dintre câmpurile nu conține valoarea Null. Dacă toate aceste câmpuri conțin valori Null, înregistrarea nu este luată în calcul. Pentru separarea numelor de câmpuri (se utilizează) simbolul. Următorul exemplu demonstrează modul de a limita numărul de înregistrări aceste înregistrări pentru care câmpul „DataIspolneniya“ sau „StoimostDostavki“ nu conține nuluri:
Count ( „DataIspolneniya StoimostDostavki „)
AS [nenul] din ordinele;
valori unice
pentru unul
SELECT COUNT (*) din tabelul WHERE Kod = "valoare"
pentru toți
SELECT Kod, COUNT (*) AS [Kol-VO] din tabelul GROUP BY Kod
> Avea nevoie număr de valori distincte,
a. atunci eu nu înțeleg
Ai putea. Am ieșit din situația, după cum urmează:
cu interogare a face începe
dacă este activă atunci Închide;
SQL.Text: = "SELECT DISTINCT Kod din tabelul";
Deschideți;
se încheie;
Numărul Query.RecordCount este numărul de înregistrări neduplicați.
verifica viteza de execuție, luați-o mai mare și cu mai unic. pus cererea [3] va lucra mai repede.
în general, în cazul în care viteza este importantă, iar interogarea doar dreptul de suma, ea e de top-l utilizați ([3]).
Memorie: 0.73 MB
Timpul: 0.058 c