![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Green |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.6.2005 Репутация: нет Всего: нет |
есть немаленькая таблица 'A' (id, id2, Date, BeginTime, EndTime)
хочу выбрать уникальные записи по полю id, дата дублируется, так как время может быть разное. Нужно все максимальное ![]() как я, походу неправильно, делаю :
подскажите грамотную реализацию спасибо. |
|||
|
||||
Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Что должен вернуть запрос для таких данных:
? -------------------- Слава Україні! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
А зачем тут вообще связывание? зачем вторая копия таблицы?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Green |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.6.2005 Репутация: нет Всего: нет |
Gluttton,
верхняя
вот если бы вот так,
то была нижняя
если есть несколько дублирующихся date у id=1, то BeginTime, EndTime не пересекаются по времени. т.е.
Akina, код в студию. |
||||||||
|
|||||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Однако правильность такого кода диалектозависима - одни СУБД дадут верные результаты, другие - лажу. Указывай СУБД. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Green |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.6.2005 Репутация: нет Всего: нет |
Akina,
макс из поля "id2" мне не нужно, это поле как раз мне нужно и объединить /добавить .. может я чёт не пральна понял.. |
|||
|
||||
Zloxa |
|
||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
а что именно тут "походу неправильно"? если я правильно понял задачу: 1)
если (id,date,time) не уникально и, в случае, если более одной записи попадают под критерий "максимальный" и надо вывести их всех, вместо row_number, следует использовать dense_rank 2) stff Бабушкин метод
Не мог бы ты малость уточнить? Я не смог придумать как это выражение может быть реализовано неоднозначно на разных платформах. Это сообщение отредактировал(а) Zloxa - 27.9.2010, 10:32 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Да, ты прав, я неверно выразился. Вернее, не на том материале. Я имел в виду случай, когда следует выбрать дополнительные поля, не входящие ни в группировку, ни в групповую операцию. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Green |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.6.2005 Репутация: нет Всего: нет |
Zloxa,
это точно, ибо простая проверка показывает, лажу.. результ. набор строк частично "правильный".. , т.е. EndTime и BeginTime получаются из разных строк. я не знаю какие поля нужно выбирать
и не знаю по каким полям делать join, что б ничего не потерять и естесна, что бы всё уникальное было ![]()
аналитические функции это чудесно, но абсолютно не понятно ![]() если не западло пару строк пояснения
|
||||||||
|
|||||||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
тогда до тех пор, пока вы не сможете внятно изложить задачу, которая перед вами стоит, любая попытка дать Вам каой либо совет обречена. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Green |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.6.2005 Репутация: нет Всего: нет |
Zloxa,
[quote] я не знаю какие поля нужно выбирать и не знаю по каким полям делать join [/qute] это касается, написаного мной запроса. и еще раз задача звучит так : есть таблица 'A' (id, id2, Date, BeginTime, EndTime) выбрать униальные записи по полю id + условие : максимальная дата и время+нужны все поля из таблицы. Это сообщение отредактировал(а) Green - 27.9.2010, 12:29 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Это поле Date? В таком случае Zloxa тебе уже указал ответ(ы). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Green |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.6.2005 Репутация: нет Всего: нет |
thx2ALL
вот этот код решил вопрос
Это сообщение отредактировал(а) Green - 27.9.2010, 13:25 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |