169 похожих чатов

Крч я всегда думал что аргегация возвращает только уникальные записи

согласно условия

select individual, max(date_born)
from people
group by individual;

Вот этот запрос возвращает такие данные
|individual|max |
|----------|-----------------------|
|30 |2010-01-01 00:00:00.000|
|10 |2002-01-01 00:00:00.000|
|20 |2007-01-01 00:00:00.000|

А если использовать этот запрос как подзапросс в where, то он возвращает все совпавшие комбинации, небольшой диссонанс случился

select people.name ,individual, date_born
from people
where (individual ,date_born) in (select individual, max(date_born)from people group by individual);

А этот запрос возвращает вот такие данные
|name |individual|date_born |
|-----|----------|-----------------------|
|vika |10 |2002-01-01 00:00:00.000|
|vika |20 |2007-01-01 00:00:00.000|
|oleg |30 |2010-01-01 00:00:00.000|
|vika |20 |2007-01-01 00:00:00.000|
|lesya|20 |2007-01-01 00:00:00.000|

Как видно сдесь повторяются некоторые записи

Как это можно объяснить, есть некое правило что если запрос является подзапросом то он возращает все уникальные строки согласно условию подзапроса?

11 ответов

82 просмотра

Запрос в подзапросе возвращает сгруппированные записи. Вопрос в том, что хранится в people

Escapewithme-Шумбасов Автор вопроса
Tim Safari
Запрос в подзапросе возвращает сгруппированные зап...

select * from people; |id |individual|date_born |name | |---|----------|-----------------------|-----| |1 |10 |2000-01-01 00:00:00.000|masha| |2 |10 |2001-01-01 00:00:00.000|katya| |3 |10 |2002-01-01 00:00:00.000|vika | |5 |20 |2007-01-01 00:00:00.000|vika | |6 |30 |2010-01-01 00:00:00.000|oleg | |4 |20 |2007-01-01 00:00:00.000|lesya| |7 |20 |2007-01-01 00:00:00.000|vika |

Escapewithme-Шумбасов Автор вопроса
Tim Safari
Запрос в подзапросе возвращает сгруппированные зап...

Ну да, если просто запрос с группировкой возвращает уникальные записи согласно запросу, то выходит что тот же самый запрос если использовать как подзапрос вернёт все данные группируя их.

Timus
ну сделай distinct и не мучай мозг

мозг мучать полезно для развития

Escapewithme-Шумбасов Автор вопроса
Timus
ну сделай distinct и не мучай мозг

А нельзя сделать так чтобы подзапрос вернул сразу уникальные данные и не дублировал их?

Escapewithme-Шумбасов Автор вопроса

Вот, ниже пример

« аргегация возвращает только уникальные записи согласно условия да все верно «А если использовать этот запрос как подзапросс в where, да, потому что внутри (в подзаросе) уникальные, но сам то запрос без группировки, поэтому НЕ уникальные

Escapewithme-Шумбасов Автор вопроса

Я был уверен что если этот запрос возвращает допустим 3 записи и используя этот же запрос как подзапрос то он тоже вернёт 3 записи, но всё работает иначе. На уровне запроса нужно сделать группировку получается. Но сделать так чтобы подзапрос вернул сразу уникальные записи(без повторения записи если условие совпало) без повторения не получится выходит.

Escapewithme Шумбасов
Я был уверен что если этот запрос возвращает допус...

Кури мануал. Конструкция которую ты заюзал работает совершенно не очевидно.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта