Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
unforcer Member Откуда: Сообщений: 11 |
Доброго времени суток! Нужна помощь с запросом! Есть результат запроса: id LocationX LocationY LocationZ Name 03F5AC5BA504 -30.73 194.46 21.34 A 03F5AC5BA504 -30.73 194.46 21.34 A 4B2A125CD104 -31.11 194.46 21.34 A 4B2A125CD104 -31.11 194.46 21.34 B Из него видно, что по столбцу ID по 2 одинаковые записи с одинаковыми координатами, но втором случае одна запись имеет Name "A", а вторая "B" Вопрос: как сделать чтобы запрос выдавал 1 строку с одинаковыми ID и разными Name? Какой должен быть результат запроса: id LocationX LocationY LocationZ Name 4B2A125CD104 -31.11 194.46 21.34 B |
14 дек 18, 08:57 [21763645] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20973 |
А почему выбрана именно та запись, где Name='B'? А так: SELECT id, LocationX, LocationY, LocationZ, MAX(Name) Name FROM (...) AS query GROUP BY id, LocationX, LocationY, LocationZ |
14 дек 18, 09:42 [21763675] Ответить | Цитировать Сообщить модератору |
unforcer Member Откуда: Сообщений: 11 |
Akina, из пары, где разные Name можно выводить любой значение.. |
14 дек 18, 09:59 [21763693] Ответить | Цитировать Сообщить модератору |
unforcer Member Откуда: Сообщений: 11 |
Akina,SELECT id, LocationX, LocationY, LocationZ, MAX(Name) Name FROM (...) AS query GROUP BY id, LocationX, LocationY, LocationZ этот запрос будет отбрасывать только одну запись с разными Name, но одинаковые будут попадать в результат |
14 дек 18, 10:01 [21763694] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20973 |
![]() |
||
14 дек 18, 11:00 [21763769] Ответить | Цитировать Сообщить модератору |
unforcer Member Откуда: Сообщений: 11 |
Akina, вполнеid LocationX LocationY LocationZ ItemName 03F5AC5BA504 -30.73 194.46 21.34 A 4B2A125CD104 -31.11 194.46 21.34 B |
14 дек 18, 13:18 [21763983] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
having count(distinct Name) > 1 |
||
14 дек 18, 13:28 [21764003] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20973 |
unforcer, ааа... то есть нужны только записи с теми ID, у которых имеется два или более разных Name? а те, у кого всё ровно, не нужны... Я просто не так понял задачу. |
14 дек 18, 14:45 [21764083] Ответить | Цитировать Сообщить модератору |
unforcer Member Откуда: Сообщений: 11 |
Akina, invm Спасибо за помощь, работает! |
14 дек 18, 15:10 [21764119] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4805 |
WITH C AS ( SELECT id, LocationX, LocationY, LocationZ, Name, RN = ROW_NUMBER() OVER (PARTITION BY id, LocationX, LocationY, LocationZ ORDER BY (SELECT NULL)) FROM (...) AS query ) SELECT id, LocationX, LocationY, LocationZ, Name FROM C WHERE RN = 2 |
||||
14 дек 18, 15:55 [21764174] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
a_voronin, Опять спешите и не думаете... |
14 дек 18, 16:32 [21764215] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |