Получить количество каждого значения в столбце таблицы - PullRequest
0 голосов
/ 02 апреля 2012

Я использую SQL Server 2008, и у меня есть таблица, в которой есть столбец «Статус». Существует пять возможных статусов: Отправлено, Выполняется, Удалено, Выполнено, Не выполнено.

Я пытаюсь написать SQL-оператор, который будет возвращать счетчик каждого из этих статусов, но мой код либо возвращает числовые статусы, либо счетчик определенного статуса. Вот с чем я работал:

SELECT     COUNT(ServiceAreaID) AS ServiceArea
FROM         Suggestions
WHERE     (ServiceAreaID = 6)

или этот

SELECT     COUNT(DISTINCT ServiceAreaID) AS ServiceArea
FROM         Suggestions

Ответы [ 4 ]

2 голосов
/ 02 апреля 2012

Для одного:

SELECT Status, COUNT(*)
FROM dbo.Suggestions
WHERE ServiceAreaID = 6
GROUP BY Status;

Для всех:

SELECT ServiceAreaID, Status, COUNT(*)
FROM dbo.Suggestions
GROUP BY ServiceAreaID, Status;
1 голос
/ 02 апреля 2012
select ServiceAreaID,count(*),status
from suggestion
group by status,suggestion;
0 голосов
/ 02 апреля 2012

Я думаю, что вы ищете что-то вроде этого:

SELECT ServiceAreaID, COUNT(ServiceAreaID) AS COUNT
FROM Suggestions
GROUP BY ServiceAreaID

Я не увидел столбец Status в ваших примерах SQL, но в случае, если он должен быть, запрос будет выглядеть примерно так:

Этот ответ в основном идентичен ответу Аарона, поэтому, если это то, что вы ищете, обязательно отметьте Аарона как ответ.

SELECT ServiceAreaID, Status, COUNT(*) AS COUNT
FROM Suggestions
GROUP BY ServiceAreaID, Status
0 голосов
/ 02 апреля 2012
SELECT ServiceAreaID, COUNT(*) AS ServiceArea
FROM Suggestions
GROUP BY ServiceAreaID

Это должно дать вам счетчик каждого идентификатора зоны обслуживания. Замените идентификатор области обслуживания в группе на то, какой у вас статус (ниже приведен столбец состояния, отделенный от serviceAreaID, если это то, что нужно).

 SELECT ServiceAreaID, status, COUNT(*) AS count
    FROM Suggestions
    GROUP BY ServiceAreaID, status
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...