Получить количество строк после уникальной даты для каждой строки - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть таблица 1: 1 (мы назовем эту таблицу 1), которая выглядит следующим образом:

| id | date                |  
|----|---------------------|  
| 1  | 2011-01-02 00:00:00 |  
| 2  | 2012-01-02 00:00:00 | 

У меня есть вторая таблица много: 1 (мы назовем эту таблицу 2), которая выглядит например:

| id | date                |  
|----|---------------------|  
| 1  | 2011-01-01 00:00:00 |  
| 1  | 2011-01-02 00:00:00 |  
| 1  | 2011-01-03 00:00:00 |  
| 2  | 2011-12-31 00:00:00 |  
| 2  | 2012-01-01 00:00:00 |  
| 2  | 2012-01-03 00:00:00 |

Я бы хотел оставить таблицу 1 и таблицу 2 (таблица 1 - это левая таблица) для идентификатора, но мне нужно только количество дат из таблицы 2, которые больше или равно столбцу даты в таблице 1.

Таким образом, результирующая таблица будет выглядеть так:

| id | date                | count_dates |  
|----|---------------------|-------------|  
| 1  | 2011-01-02 00:00:00 | 2           |  
| 2  | 2012-01-02 00:00:00 | 1           |  

Как я могу сделать это, используя SQL Сервер?

1 Ответ

1 голос
/ 28 апреля 2020

Не беспокойтесь о левом соединении, просто используйте подзапрос с соответствующим предложением where, например,

select id, [date]
  , (select count(*) from dbo.Table2 T2 where T2.id = T1.id and T2.[date] >= T1.[date])
from dbo.Table1 T1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...