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

Всем привет, постоянно сталкиваюсь с проблемой группировки если нужно сделать

ее по одному полю, а выбрать нужно еще и другие

select "tk"."type", "t"."content", "relation_id", l.code as lang_code, l.name as lang_name
from "page_metadata"
inner join "translators" as "t" on "t"."id" = "page_metadata"."translator_id"
inner join "translator_key" as "tk" on "tk"."id" = "t"."translator_key_id"
inner join "language" as "l" on "l"."id" = "t"."language_id"
where "page_metadata"."relation_id" = 1
and "page_metadata"."page_type" = 5
and "tk"."type" = 'body_content'
group by relation_id

В этом случаи я получаю ошибку ERROR: column "tk.type" must appear in the GROUP BY clause or be used in an aggregate function
Если я укажу все поля которые у меня в запросе то группировка потеряет смысл, так как поля имеют разные данные и это будет то же самое что и без группировки, как правильно составлять запрос в таком случаи?

9 ответов

13 просмотров

ну а какое вам нужно тогда значение ? если для одного relation_id есть разные l.name ? какое из них выбрать ?

Сергей- Автор вопроса
Сергей Кравчук
ну а какое вам нужно тогда значение ? если для одн...

выбрать нужно все что указано в селекте, сделать группировку только по полю relation_id

Сергей
выбрать нужно все что указано в селекте, сделать г...

еще раз какое значение выбрать для l.name, если их более одного ? если у вас нет ответа, то вы не понимаете как работает группировка

"постоянно сталкиваюсь с проблемой группировки если нужно сделать ее по одному полю, а выбрать нужно еще и другие" Звучит как классический случай для использования оконных функций)

Сергей- Автор вопроса
Сергей Кравчук
еще раз какое значение выбрать для l.name, если их...

значение l.name тоже разные, чуть ошибся в запросе, нужно группировку сделать как раз таки по полю l.name или/и l.code

Сергей
значение l.name тоже разные, чуть ошибся в запросе...

окей, тогда какие "поля имеют разные данные " и какие нужно выбрать, если в одном столбце несколько разных значений ?

Сергей- Автор вопроса
Сергей Кравчук
окей, тогда какие "поля имеют разные данные " и ка...

одинаковые только у type, relation_id разные у каждой строки это content code и name одинаковые для двух строк получается этот запрос выбирает записи на 5-х языках, выборка отдает 10 строк, в которых code и name можно сгруппировать по 2 значения

Сергей
одинаковые только у type, relation_id разные у каж...

мы все ближе к истине так какой content вам нужен для каждого type ? первый ? последний? максималтьный ? средний ? любой? все ? вы же не указали вот пострес на вас и ругается

Сергей- Автор вопроса
Сергей Кравчук
мы все ближе к истине так какой content вам нужен ...

блин… я кажись понял что я чуть затроил с утра, и мне нужна не группировка, а union, мне нужно добавить в выборку поле, а не как вы правильно сказали выбрать только одно тот случай когда ответ пришел после того как описал то что мне нужно сделать)

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
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
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта