SQL объединяет значения строки в столбце

ТАБЛИЦА 1

КОДЦЕННОСТЬ
АА21
АА32
АБ24
переменный ток22
АА42
переменный ток20
ОБЪЯВЛЕНИЕ27
ОБЪЯВЛЕНИЕ28
АЭ29
АФ31
АГ45
АЭ51
АХ33

ТАБЛИЦА 2

КОДКЛЮЧ
АА1
АБ2
переменный ток3
ОБЪЯВЛЕНИЕ4
АЭ5
АФ6
АГ7
АХ8

Здесь я хочу преобразовать таблицу таким образом, чтобы значение AB суммировалось с AA без воздействия на его ключ, аналогично значение AG должно суммироваться с AD без изменения его ключа, как показано ниже. Таблица 1 может иметь несколько значений для одного кода. Пожалуйста, помогите или скажите мне подход.

КОДЦЕННОСТЬКЛЮЧ
АА1191
переменный ток223
ОБЪЯВЛЕНИЕ1004
АЭ295
АФ316
АХ338

Не уверен, что понимаю, чего вы пытаетесь достичь. Я предполагаю, что под «объединением» вы подразумеваете «добавить», но я по-прежнему не понимаю, почему вы решили изменить AB с AA или AG с AE: какое правило связывает эти ключи? Я подозреваю, что «Ключ» как-то замешан; Вы можете определить его роль?

ariels 11.05.2022 15:09
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте выражение CASE в TABLE1, чтобы объединить нужные коды, агрегировать и присоединиться к TABLE2:

SELECT t1.code, t1.value, t2.key
FROM (
  SELECT CASE code 
           WHEN 'AB' THEN 'AA' 
           WHEN 'AG' THEN 'AD' 
           ELSE code 
         END code, 
         SUM(value) "value"
  FROM table1
  GROUP BY 1
) t1 INNER JOIN table2 t2
ON t2.code = t1.code
ORDER BY t1.code;

Смотрите демо.

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

Wmm 13.05.2022 15:30

Другие вопросы по теме