Попытка получить результаты для промо-кодов GROUPED BY с тем же промо-идентификатором.(SQL) - PullRequest
0 голосов
/ 09 июня 2019

Это структура таблицы: Структура таблицы

Один промо_ид может иметь несколько форматов кодов для клиентов. У нас есть несколько promo_ids для нашей акции по отыгрышу в разные месяцы года.

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

Запрос, который я использовал:

select promo_id, code, count(code) from tableA
where code like 'HELLO%'
group by distinct(promo_id);

Я получаю эту ошибку:

ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"

Если я удаляю столбец кода из запроса, он работает. Но я подумал о том, чтобы показать пример для каждого promo_id.

Может кто-нибудь, пожалуйста, помогите? Спасибо!

1 Ответ

2 голосов
/ 09 июня 2019

Если вы хотите показать пример , то вам на самом деле все равно, какой пример вы показываете так - пусть это будет первый (MIN; может иметь был последним с MAX или любой другой соответствующей функцией), например,

SQL> with test (promo_id, code) as
  2    (select 123, 'HELLODAVEMar' from dual union all
  3     select 123,'HELLOSALLYMar' from dual union all
  4     select 554, 'TUESFREE' from dual union all
  5     select 666, 'HELLOTIMNov' from dual
  6    )
  7  select promo_id, min(code) code_example, count(*) cnt
  8  from test
  9  where code like 'HELLO%'
 10  group by promo_id;

  PROMO_ID CODE_EXAMPLE         CNT
---------- ------------- ----------
       123 HELLODAVEMar           2
       666 HELLOTIMNov            1

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...