Как выбрать конкретное значение и присоединить его к первому набору результатов - PullRequest
0 голосов
/ 31 мая 2018

У меня есть оператор выбора, который возвращает мне несколько столбцов из таблицы.У меня есть столбец "daySince" (3-й), который на самом деле является разницей по дате.

Мне нужно выбрать еще один столбец (как numberOfRecord), который бы представлял номер строки, имеющей то же значение "daySince".Я просто добавил число 7 здесь, чтобы объяснить, как будет выглядеть структура, даже если правильные значения для этого столбца будут следующими:

  • 1 для строк, имеющих значение daySince val от 10 до 14

  • 8 для строк, имеющих daySince val 15

  • 2 для строк, имеющих daySince val 16

HopeТо, что я спрашиваю, имеет смысл.Я попытался запустить случайное левое, правое и полное внешнее соединение с ужасным результатом.Кто-нибудь может обратиться ко мне по правильному пути?

Вот пример запроса

SELECT username, id, DATEDIFF( creation, '2018/02/28') as daySince, 7 as numberOfRecord
FROM MyTable 
ORDER BY daySince ASC
username  id daySince numberOfRecord
rob 2D8836  11  7
rob 2D8836  12  7
rob 2D8836  13  7
rob 2D8836  14  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  15  7
rob 2D8836  16  7
rob 2D8836  16  7

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Исходя из того, что вы хотите, вы должны либо агрегировать по username, id:

SELECT username, id, DATEDIFF(creation, '2018-02-28') as daySince, COUNT(*)
FROM MyTable 
GROUP BY username, id, DATEDIFF( creation, '2018-02-28')
ORDER BY daySince ASC;

, либо вы должны удалить username и id, потому что они не имеют значения:

SELECT DATEDIFF(creation, '2018-02-28') as daySince, COUNT(*)
FROM MyTable 
GROUP BY DATEDIFF( creation, '2018-02-28')
ORDER BY daySince ASC;
0 голосов
/ 31 мая 2018

Отметьте это.

        SELECT
            username, id, 
            DATEDIFF( creation, '2018/02/28') as daySince, 
            Count(DATEDIFF( creation, '2018/02/28')) as numberOfRecord
        FROM MyTable 
        Group By DATEDIFF( creation, '2018/02/28')
        ORDER BY daySince ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...