SQL сообщает, как подсчитать количество записей, соответствующих определенным критериям - PullRequest
1 голос
/ 02 апреля 2011

Скажем, у вас есть таблица, такая как:

id   status  date
-----------------------
1    2       today
2    3       today
3    3       yesterday
4    2       yesterday
5    1       yesterday

И вы хотите запрос, который подсчитывает число или результаты, которые имеют статус 1, 2 или 3 на заданную дату, например, желаемыйнабор результатов будет:

date        status 1   status 2  status 3 
            count      count     count 
------------------------------------------
today       0          1         1
yesterday   1          1         1

Может кто-нибудь направить меня в правильном направлении ?.Спасибо.

Ответы [ 2 ]

5 голосов
/ 02 апреля 2011
Select Date
    , Sum( Case When Status = 1 Then 1 Else 0 End ) Status1Count
    , Sum( Case When Status = 2 Then 1 Else 0 End ) Status2Count
    , Sum( Case When Status = 3 Then 1 Else 0 End ) Status3Count
From MyTable
Group By Date
1 голос
/ 02 апреля 2011
select status, date, count(*)
from Table
group by status, date

результат:

status date      count
  2    today     1
  3    today     1
  3    yesterday 1
  2    yesterday 1
  1    yesterday 1
...