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

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

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

Сообщение 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;
То есть - сколько раз повторяется в списке каждый город.
Последний раз редактировалось SS_Rebelious 28 май 2012, 18:59, всего редактировалось 1 раз.
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

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

Сообщение Voltron »

Если правильно понял, то

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

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

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

LA      |2
New York|1
DISTINCT тут ИМХО вообще не нужен
tsarev
Завсегдатай
Сообщения: 406
Зарегистрирован: 14 авг 2006, 16:21
Репутация: 25

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

Сообщение tsarev »

А если как в Access'e сделать: запрос на повторяющиеся записи. Я обычно меняю условие с "<1" на "<=1" и получаю полный список всех значений.
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

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

Сообщение SS_Rebelious »

2 Voltron, спасибо, получилось!
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
Ответить

Вернуться в «Общий - ПО»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость