Як підрахувати кількість унікальних записів в таблиці
Як підрахувати кількість унікальних записів в таблиці?
Як підрахувати кількість унікальних записів в таблиці?
Намагаюся виконати запит:
with Query do begin
if Active then Close;
SQL.Text: = "SELECT COUNT (DISTINCT Kod) FROM Table";
Open;
end;
де:
Kod - поле в таблиці Table;
Table - таблиця в базі Access;
однак з'являється "Помилка синтаксису (пропущений оператор).".
Що я не так роблю? Якщо такий синтаксис не допустимо для Access, тобто чи інші варіанти, крім як перебір записів?
це з хелпа аксесс
.
Хоча аргумент вираз допускає виконання обчислень над полем, функція Count повертає просто кількість записів. Це значення не залежить від того, які дані містяться в цих записах.
Функція Count не підраховував записи зі значеннями Null, якщо тільки аргумент вираз не містить підстановлювальний знак зірочки (*). Якщо використовуються знаки зірочки, функція Count обчислює загальну кількість записів, включаючи ті, які містять порожні поля. Функція Count (*) працює значно швидше функції Count ([Ім'я стовпця]). Не слід укладати символ зірочки в прямі лапки ( ""). У наступному прикладі обчислюється кількість записів в таблиці «Замовлення»:
AS ЧіслоЗаказов FROM Замовлення;
Якщо в аргументі вираз задано кілька полів, функція Count підраховує запис тільки в тому випадку, якщо хоча б одне з полів не містить значення Null. Якщо всі зазначені поля містять значення Null, запису не підраховується. Для поділу імен полів використовується символ (). У наступному прикладі демонструється спосіб обмеження кількості записів тими записами, для яких поле «ДатаІсполненія» або поле «СтоімостьДоставкі» не містять порожні значення:
Count ( "ДатаІсполненія Вартість доставки")
AS [Not Null] FROM Замовлення;
унікальні значення
для одного
SELECT COUNT (*) FROM Table WHERE Kod = "значення"
для всіх
SELECT Kod, COUNT (*) AS [Kol-vo] FROM Table GROUP BY Kod
> Йому потрібно кількість неповторюваних значень,
а. тоді я не так зрозумів
Можна і так. Я ж вийшов з положення наступним чином:
with Query do begin
if Active then Close;
SQL.Text: = "SELECT DISTINCT Kod FROM Table";
Open;
end;
Число Query.RecordCount і є кількість неповторюваних записів.
перевір швидкість виконання, тільки візьми табличку побільше і з великою кількістю унікальних. ставлю на те що запит з [3] відпрацює швидше.
в загальному якщо швидкість важлива і від запиту потрібно тільки кількість, то лутше користуватися ним ([3]).
Пам'ять: 0.73 MB
Час: 0.058 c