Member 8478234 Ответов: 4

Как получить уникальный ros из SQL


У меня есть такая долина.

TaskId	InternalId	(No column name)	UploadId	RequestId	CreatedDate	ProcessStatusMappingID
959	959	0	183	959636241330158000000	3/3/2017	197
959	959	0	183	959636241463837000000	3/3/2017	197
960	960	0	183	960636241330205000000	3/3/2017	197
960	960	0	183	960636241463912000000	3/3/2017	197
961	961	0	183	961636241330219000000	3/3/2017	197
983	983	0	194	983636244258262000000	3/6/2017	197
983	983	0	194	983636244258532000000	3/6/2017	197
984	984	0	194	984636244258309000000	3/6/2017	197
984	984	0	194	984636244258553000000	3/6/2017	197
985	985	0	194	985636244258327000000	3/6/2017	197



мне нужен запрос, возвращающий значение имеет

TaskId	InternalId	(No column name)	UploadId	RequestId	CreatedDate	ProcessStatusMappingID
959	959	0	183	959636241463837000000	3/3/2017	197
960	960	0	183	960636241463912000000	3/3/2017	197
961	961	0	183	961636241330219000000	3/3/2017	197
983	983	0	194	983636244258532000000	3/6/2017	197
984	984	0	194	984636244258553000000	3/6/2017	197
985	985	0	194	985636244258327000000	3/6/2017	197


заранее спасибо.

Что я уже пробовал:

пробовал с отчетливым, но не получалось.

Suvendu Shekhar Giri

Что-нибудь вы пробовали до сих пор?
Поделитесь проверенным запросом.

4 Ответов

Рейтинг:
2

_Asif_

Попробовать это,

SELECT *
FROM   TABLE T
       INNER JOIN 
       (
           SELECT TASKID, MAX(REQUESTID) RID
           FROM   TABLE T
       ) TMP ON T.TASKID = TMP.TASKID AND T.REQUESTID = TMP.RID


Maciej Los

Хороший, даже если без комментариев!

Рейтинг:
0

omerkamran

С ДЕДУПЛИКАЦИЯ КАК (
ВЫБИРАТЬ *
, Функции row_number() над ( раздел по заказу Идентификатор_задачи по Идентификатор_задачи ) как повторяемость
From имя_таблицы
)
ВЫБЕРИТЕ * ОТ ДЕДУПЛИКАЦИИ
ГДЕ
Возникновение = 1


Рейтинг:
0

Maciej Los

Дубликатов нет. Все строки уникальны! Все, чего вы хотите достичь, - это получить свидание с самым высоким RequestId.

Я бы предложил использовать Агрегатная функция MAX() с предложением OVER ()[^]:

SELECT DISTINCT TaskId,	InternalId,	NoColumnName,	UploadId,
	MAX(RequestId) OVER( PARTITION BY TaskId ORDER BY CreatedDate) AS MaxRequestId,	CreatedDate,	ProcessStatusMappingID
FROM YourTableName


Рейтинг:
0

Member 13154494

with task as(
select  *, ROW_NUMBER() over (partition by TaskId order by TaskId) as rownum from tasks) select * from task  where rownum=1

Используя CTE и концепцию Row_Number, мы можем добиться четких записей. задача-это имя CTE, а rownum-временное имя столбца.


CHill60

Это точно то же самое, что и решение 2 - все, что вы сделали, это изменили псевдонимы.

Member 13154494

Да