TSQL-запрос, который возвращает мне самую раннюю дату и самую последнюю дату в таблице - PullRequest
1 голос
/ 26 апреля 2009

У меня есть таблица в базе данных SQL Server 2008, которая содержит множество записей, а также столбец даты. Дата вставляется автоматически при появлении новой записи в таблице. Таким образом, он содержит дату создания записи.

Я пытаюсь выполнить запрос, который вернул бы мне самую раннюю дату и самую позднюю дату в этой таблице.

Я пробовал что-то вроде;

SELECT    TOP(1) DateAdded AS firstdate 
FROM      News 
ORDER BY  DateAdded DESC;  

SELECT    TOP(1) DateAdded AS lastdate 
FROM      News 
ORDER BY  DateAdded ASC; 

но он только вернул 'firstdate'.

Кто-нибудь может подсказать мне, как этого добиться?

Ответы [ 3 ]

3 голосов
/ 26 апреля 2009
SELECT 
       MIN(DateAdded) As FirstDate,
       MAX(DateAdded) As LastDate
FROM
       News;
1 голос
/ 09 ноября 2012

Вы можете использовать что-то вроде этого:

    select DateAdded     from (SELECT DateAdded,
           row_number() over (order by DateAdded desc) as rn,
           count(*) over () as added_value
    FROM News
) t
where rn = 1
   or rn = added_value
ORDER BY DateAdded DESC
1 голос
/ 26 апреля 2009

Ответ заключается в использовании агрегатов.

SELECT
    MIN(DateAdded) AS firstdate,
    MAX(DateAdded) AS lastdate
FROM
    News;

Ваш запрос возвращает 2 результата: каждый работает индивидуально, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...