GroupBy только одно поле, а не все поля, которые у меня есть в Select

Я работаю со следующей таблицей:

**ID    Value   Data**
1   30  25/4
1   20  26/4
1   20  27/4
3   10  25/4
4   20  26/4
5   30  26/4

И мне нужно запросить таблицу и получить следующий результат:

**ID    Value   Data**
1   70  "Any value, can be 25/4, 26/4 or 27/4"
3   10  25/4
4   20  26/4
5   30  26/4

Я пытаюсь выполнить запрос с помощью GroupBy, но если добавить все поля (идентификатор, значение и данные), результат возвращает 1-ю таблицу. И, если я использую только идентификатор поля GroupBy, у меня возникает следующая ошибка:

ORA-00979: не выражение GROUP BY

Может ли кто-нибудь помочь о том, как это сделать?

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

Ответы 2

Мы могли бы произвольно взять минимальное значение Data в каждой группе ID:

SELECT ID, SUM(Value) AS Value, MIN(Data) AS Data
FROM yourTable
GROUP BY ID;
Ответ принят как подходящий

Просто используйте min() или max():

select id, sum(value), min(data)
from t
group by id;

Если вам действительно нужно случайное значение, вы можете использовать:

select id, sum(value),
       min(data) keep (dense_rank first order by dbms_random.random)
from t
group by id;

Спасибо. Если у меня есть нулевой идентификатор, запрос суммирует значения. Как я могу этого избежать?

René Fontan 28.05.2019 16:40

@ Рене Фонтан. . . Вы можете добавить where id is not null.

Gordon Linoff 28.05.2019 16:56

Гордон, я хочу показать нулевой идентификатор, но не хочу их суммировать.

René Fontan 28.05.2019 16:58

@ Рене Фонтан. . . Если sum(case when id is not null then value end) не отвечает на вопрос, вы должны задать его как новый вопрос с соответствующими данными образца и желаемыми результатами.

Gordon Linoff 28.05.2019 17:06

Хорошо, откройте новый вопрос здесь stackoverflow.com/questions/56345735/…

René Fontan 28.05.2019 17:41

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