Предполагается, что у меня есть таблица с ключом и некоторыми другими столбцами. Ключевой столбец имеет следующую форму (все строки):
key1: '2', '1', '3', '1', '1', '2', '', '4', '', '4', '1', 'k', '' '; , 'k'
И я хотел бы сгруппировать по ключу1, чтобы суммировать другие значения. Я хочу сгруппировать только цифровые клавиши, я имею в виду, я не хочу группировать такие клавиши, как 'k', '', ... Потому что я не хочу суммировать эти значения.
Есть ли способ сделать группу по в случае, если ключ будет числовым? или поставить какое-нибудь регулярное выражение или подобное?
что ты уже испробовал? Измените свой вопрос, чтобы отобразить Минимальный, полный и проверяемый пример кода, с которым у вас возникли проблемы, тогда мы постараемся помочь с конкретной проблемой. Вы также можете прочитать Как спросить.


Это то, что вы хотите?
select (case when regexp_contains(key, '^[0-9]+$')
then 'numbers'
else key
end) as newkey,
count(*)
from t
group by newkey;
Привет, Гордон Линофф! Это не совсем то, что я ищу. Представьте, что у нас есть столбец, который является первичным ключом (фруктами). И в этом столбце есть регистры: клубника, яблоко, апельсин ... и есть неправильные регистры, в которых есть такие вещи, как "asdf", "", "картофель". Я хочу сгруппировать все яблоки, все апельсины и всю клубнику, но я не хочу группировать остальные значения. Если есть три регистра с «картошкой», я не хочу их группировать. Как вы думаете, возможно ли это?
@jonaetn. . . Я не понимаю, как наш комментарий меняет суть ответа. Вы ввели строки вместо чисел, но идея та же. Возможно, вам следует написать вопрос новый и предоставить образцы данных, желаемые результаты и лучшее объяснение того, чего вы хотите достичь.
что ты пробовал?