0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 34

DISTINCT применяемый только к одному столбцу

02.10.2015, 11:51. Показов 65001. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Задача на мой взгляд очень простая, но у меня не получается сделать работающий запрос. СУБД - IBM DB2. Извлекаются данные из двух таблиц, которые связываются по ID. При выполнении запроса с DISTINCT, он отбирает уникальные комбинации всех полей одной записи. А мне нужны уникальные записи одного поля, даже если им соответствует по две записи из другого поля.
SQL
1
2
3
SELECT DISTINCT t1.numb, t1.numadr, t1.fam, t1.im, t2.god, t2.pr1, t2.pr2 
FROM t1 INNER JOIN t2 ON t1.id = t2.id
WHERE (t1.numadr = 5) AND (t2.pr1 = 1)
Так как t1.number соответствует две записи из t2.year у меня получаются повторяющиеся записи в t1.number. Именно это поле у меня в результирующей выборке должен содержать уникальные поля, и без разницы какой из соответствующих ему полей t2 он подставит в результате. Выходом должен был стать group by, на DB2 на него ругается.
Кликните здесь для просмотра всего текста
Выражение, начинающееся с "ID " и заданное в условии SELECT, условии HAVING или условии ORDER BY, не задано в условии GROUP BY, или же оно задано в в условии SELECT, условии HAVING или условии ORDER BY вместе с функцией столбца, но условие GROUP BY не задано.

Объяснение:

В операторе SELECT есть одна из следующих ошибок:
* Указанное выражение и функция столбца содержатся в условии SELECT,
условии HAVING или условии ORDER BY, но при этом отсутствует условие
GROUP BY.
* Указанное выражение содержится в условии SELECT, условии HAVING или
условии ORDER BY, но не входит в условие GROUP BY.

Указанное выражение начинается с "<начало-выражения>". Это выражение
может представлять собой имя одного столбца.

Если в условии HAVING заданы функции NODENUMBER или PARTITION,
считается, что все столбцы ключей разделения основной таблицы входят в
условие HAVING.

Оператор невозможно обработать.

Действия пользователя:

Исправьте оператор, включив в условие GROUP BY выражение, входящее в
условие SELECT, условие HAVING или условие ORDER BY, или удалив функцию
столбца из оператора SELECT.

sqlcode: -119

sqlstate: 42803

Что можете предложить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.10.2015, 11:51
Ответы с готовыми решениями:

(Insert) Несколько значений одному столбцу
Всем привет. Возможно ли вставить несколько значений одному столбцу? Например: Есть таблица Клиент с полями (ID, Fio, Phone), Так же...

Извлечь данные по одному столбцу
Доброго времени суток. Нужна ваша помощь. Делаю запрос и столкнулся со следующим вопросом. В большой таблице, в одном из столбцов ...

ADO vs Excel Вывести дубликаты (повторения по одному столбцу)
С помощью ADODB.Connection прочитать данные с листа эксель и вывести на лист № 2 целиком записи, в которых дублируется значение в поле...

21
6001 / 4576 / 1096
Регистрация: 29.08.2013
Сообщений: 28,261
Записей в блоге: 3
09.04.2019, 14:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Allleksey Посмотреть сообщение
Нужен код запроса, который бы выдал результат
а по какому признаку отобрать именно "два", а не "три"?
0
66 / 64 / 24
Регистрация: 14.10.2014
Сообщений: 339
29.04.2019, 19:16
Такое ощущение, что нужно взять последнюю запись, которая определяется одним из 20 полей,например с типом дата, о которым мы не знаем.
По первоначальной постановке можно выдавать первую попавшуюся строку в группе по полю Main_tube_type.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2019, 19:16

DISTINCT по одному полю с выводом значений по остальным
Подскажите пожалуйста как сделать DISTINCT по одному полю c максимальной датой чтобы при этом также выводились значения остальных полей....

Несколько значений одному столбцу
Добрый день. И снова к вам. Собственно, из заголовка все ясно. Необходимо вытащить записи, где dostup = 1, 5, 3, примеру.

Entity sql составление запроса с DISTINCT по одному полю
Доброго всем времени суток. Нужно разработать запрос для получения данных на Entity sql. Обычный запрос создать не проблема, но мне нужен...

Сортировка строк по одному столбцу
Как отсортировать таблицу по одному числовому столбцу, чтобы числа шли по возрастанию вместе с своими строками.? Спасибо.

Фильтрация в DataGridView по одному столбцу
Фильтрация в DataGridView по одному столбцу,чтобы при вводе данных из этого столбца в TextBox и нажатии на кнопку, скрывались строки не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru