Страница 1 из 1

SQLite: подстчёт количества повторений

Добавлено: 28 май 2012, 15:22
SS_Rebelious
Здесь (внизу страницы) есть пример подсчёта количества городов в которых находятся подразделения клиента:
Спойлер

Код: Выделить всё

CREATE TABLE customers
( 	customer_id 	INTEGER 	not null,
  	customer_name 	TEXT 	not null,
  	city 	TEXT, 	
  	
); 			

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7001, 'Microsoft', 'New York');
INSERT INTO customers (customer_id, customer_name, city)
VALUES (7007, 'NVIDIA', 'LA');

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7008, 'NVIDIA', 'LA');

Код: Выделить всё

SELECT customer_name, COUNT(DISTINCT city) as "Distinct Cities"
FROM customers
GROUP BY customer_name;
В SQLite такое не прокатывает, поиск в гугле по поводу (COUNT(DISTINCT x)) в SQLite выдаёт советы типа:

Код: Выделить всё

SELECT COUNT(city FROM (SELECT DISTINCT city FROM customers);
Но это или не то, что нужно, или я не понимаю, как это можно адаптировать под мои нужды. В справке тоже ничего путного не нашёл.
Мне нужно видимо, что-то типа такого:

Код: Выделить всё

SELECT city, COUNT(DISTINCT city) as "Distinct Cities"
FROM customers
GROUP BY city;
То есть - сколько раз повторяется в списке каждый город.

Re: SQLite: подстчёт количества повторений

Добавлено: 28 май 2012, 16:50
Voltron
Если правильно понял, то

Код: Выделить всё

SELECT city, COUNT(*) AS "Distinct cities" FROM customers GROUP BY city;
На тестовых данных получаем следующий результат

Код: Выделить всё

LA      |2
New York|1
DISTINCT тут ИМХО вообще не нужен

Re: SQLite: подстчёт количества повторений

Добавлено: 28 май 2012, 18:13
tsarev
А если как в Access'e сделать: запрос на повторяющиеся записи. Я обычно меняю условие с "<1" на "<=1" и получаю полный список всех значений.

Re: SQLite: подстчёт количества повторений

Добавлено: 28 май 2012, 18:58
SS_Rebelious
2 Voltron, спасибо, получилось!