Как можно считать общее количество записей И отдельно считать записи, в которых два поля равны - PullRequest
0 голосов
/ 17 мая 2019

Допустим, у меня есть следующая таблица с именем VISITS:

enter image description here

Мне нужно подсчитать общее количество записей для каждого местоположения, а затем иметь отдельное количество тех записей, где значения Date1 и Date2 равны. Окончательные результаты должны выглядеть так:

enter image description here

Я могу получить общее количество, используя:

выберите местоположение, количество (*) в качестве «Всего посещений» из группы посещений по местоположению

И я могу получить количество посещений, которые соответствуют, выполнив

выберите местоположение, количество (*) как «общее совпадение» из посещений где Date1 = Date2 сгруппировать по местоположению

Но я не знаю, как сделать оба подсчета одним запросом.

Ответы [ 2 ]

3 голосов
/ 17 мая 2019

Использовать условную агрегацию:

select v.Location, Count(*),
       sum(case when v.date1 = v.date2 then 1 else 0 end) as same_day
from Visits v
group by v.location;

Обратите внимание, что в ваших запросах отсутствует предложение group by.

0 голосов
/ 17 мая 2019

простой способ может быть

  select Location, Count(*), sum(case when Date1 = Date2 then 1 else 0 end)
  from Visits
  group by location 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...