Подсчет экземпляров клиентов - PullRequest
1 голос
/ 15 июня 2010

Скажите, что у меня есть таблица с одним столбцом с именем CustomerId. Пример экземпляра этой таблицы:

CustomerId
14
12
11
204
14
204

Я хочу написать запрос, который подсчитывает количество экземпляров идентификаторов клиентов. В конце я бы хотел получить такой результат:

CustomerId      NumberOfOccurences
14              2
12              1
11              1
204             2
14              1

Я не могу придумать, как это сделать.

Ответы [ 2 ]

10 голосов
/ 15 июня 2010

Это самый простой пример GROUP BY

SELECT CustomerId, count(*) as NumberOfOccurences
    FROM tablex GROUP BY CustomerId;
1 голос
/ 15 июня 2010

Упражнение № 3 на этой странице объясняет, как это сделать.

CREATE TABLE customers
(   customer_id     number(10)  not null,
    customer_name   varchar2(50)    not null,
    city    varchar2(50),   
    CONSTRAINT customers_pk PRIMARY KEY (customer_id)
);          
INSERT INTO customers (customer_id, customer_name, city)
VALUES (7001, 'Microsoft', 'New York');

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7002, 'IBM', 'Chicago');

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7003, 'Red Hat', 'Detroit');

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7004, 'Red Hat', 'New York');

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7005, 'Red Hat', 'San Francisco');

INSERT INTO customers (customer_id, customer_name, city)
VALUES (7006, 'NVIDIA', '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');

Решение:

Следующий оператор SQL вернул бы число отдельных городов для каждого имени клиента в таблице клиентов:

SELECT customer_name, COUNT(DISTINCT city) as "Distinct Cities"
FROM customers
GROUP BY customer_name;

Будет возвращен следующий набор результатов:

CUSTOMER_NAME   Distinct Cities
IBM     1
Microsoft   1
NVIDIA  2
Red Hat     3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...