Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Минимальное значение id в Group by  [new]
Sergey-ZZZ
Member

Откуда:
Сообщений: 118
Что-то никак не соображу с группировкой
Существуют две таблицы

A
id..Name...R
---------------
1...aaa......1
2...bbb......1
3...ccc.......1
4...ddd......2

B
id....sss
-------------
1.....tttt
2.....rrrr

SELECT *
FROM A INNER JOIN B
ON A.R = B.id

нужно выбрать строки в группе с минимальным ID

A.id....Name...R....B.id...sss
----------------------------------
1.......aaa.......1.....1......tttt
4.......ddd.......2.....2......rrrr
21 окт 16, 11:50    [19808236]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
SELECT A.*, B.*
FROM (SELECT id=MIN(id), R FROM A GROUP BY R) AA
JOIN A ON AA.id=A.id
JOIN B ON AA.R = B.id;
21 окт 16, 11:57    [19808288]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
senn
Member

Откуда:
Сообщений: 408
Sergey-ZZZ,
SELECT * 
FROM A INNER JOIN B ON A.R = B.id
WHERE A.R = (SELECT MIN (A.R) FROM  A INNER JOIN B ON A.R = B.id)
21 окт 16, 12:01    [19808319]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Да, строго говоря, у меня тоже в подзапросе JOIN B добавить надо -
ведь нужен минимум только в записях, для которых есть соответствующая запись в B
21 окт 16, 12:08    [19808382]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
declare @A table (id int,Name varchar(10),R int)
declare @B table(id int, sss varchar(10))

insert @A values(1,'aaa',1),
(2,'bbb',1), 
(3,'ccc',1),
(4,'ddd',2)


insert @B

values(1,'tttt'),
(2,'rrrr')


select top 1 with ties *
from @A a join @B b on a.r = b.id
order by row_number() over(partition by a.R order by a.id)
21 окт 16, 12:09    [19808389]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
Sergey-ZZZ
Member

Откуда:
Сообщений: 118
iap,

Большое спасибо. То что нужно.
21 окт 16, 12:20    [19808468]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Sergey-ZZZ
iap,

Большое спасибо. То что нужно.
На самом деле пост непосредственно перед вашим тоже нормальный такой.
Просто надо убедиться, какой эффективнее.
21 окт 16, 12:27    [19808534]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
Sergey-ZZZ
Member

Откуда:
Сообщений: 118
iap,

Да дело в том что у меня не MS SQL, а RedShift. И там нельзя объявлять переменные. А Ваш вариант самый подходящий. Еще раз сапсибо
21 окт 16, 12:45    [19808662]     Ответить | Цитировать Сообщить модератору
 Re: Минимальное значение id в Group by  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Sergey-ZZZ
iap,

Да дело в том что у меня не MS SQL, а RedShift. И там нельзя объявлять переменные. А Ваш вариант самый подходящий. Еще раз сапсибо
О каких переменных речь? Нет там никаких переменных
21 окт 16, 13:39    [19809048]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить