![]() |
|
Модераторы: 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 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |