2014-10-07 4 views
0

Я получаю данныеПолучить две записи для каждого пользователя идентификатора SQL запроса

1 34 abc5 
1 24 abc3 
1 12 abc2 
1 24 abc1 
1 34 abc6 
1 34 abc76 
1 24 ab1c243 
1 24 abc243 
1 34 abc243 
1 34 abc243 

из моего запроса .. есть ли способ, чтобы получить выход как этот

мой запрос

SELECT * FROM table2 
WHERE (abc2 IN (SELECT * FROM table3 AS f INNER JOIN 
table1 AS u ON u.id_usr = f.userLogedin_id 
WHERE  (u.id_usr = '13'))) AND (publish_status = '3') 
ORDER BY guser_ID 

1 34 abc5 
1 34 abc6 
1 24 abc3 
1 24 abc1 
1 12 abc2 

т.е. orderby desc и ограничить до 2 на каждого уникального пользователя .. в этом случае 34, 24 и 12 являются уникальными пользователями

+1

мы могли видеть запрос? Кроме того, заголовок столбца также может помочь;) – jbutler483

+0

добавил (а) мой запрос plz chk –

ответ

2

попробуйте это ..

with cte as 
(
select row_number() over (partition by <col2> order by <col2> desc) as id, col1,col2,col3 from <tablename> 
) 
select * from cte where id<=2 
+1

изменить ваш заказ также , так как пользователю нужны записи с самым высоким значением col2 – Murtaza

+0

Также упоминается, что это SQL 2005 и выше – Murtaza

+0

может у вас больше ясно .. использование моих переменных. –

0
declare @t table (id int,value int,name varchar(10)) 
insert into @t (id,value,name)values (1,34,'abc5') 
insert into @t (id,value,name)values (1,24,'abc3') 
insert into @t (id,value,name)values (1,12,'abc2') 
insert into @t (id,value,name)values (1,24,'abc1') 
insert into @t (id,value,name)values (1,34,'abc6') 
insert into @t (id,value,name)values (1,34,'abc76') 
insert into @t (id,value,name)values (1,24,'ab1c243') 
insert into @t (id,value,name)values (1,24,'abc243') 
insert into @t (id,value,name)values (1,34,'abc243') 
insert into @t (id,value,name)values (1,34,'abc243') 

SELECT t.* 
FROM (
     SELECT DISTINCT value 
     FROM @t 
     ) tt 
CROSS APPLY 
     (
     SELECT TOP 2 * 
     FROM @t t 
     WHERE t.value = tt.value 
     ORDER BY 
       1 DESC 
     ) t 
Смежные вопросы