Как выбрать неагрегированные записи из таблицы упорядочения по количеству агрегированных запросов? - PullRequest
0 голосов
/ 01 ноября 2018

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

select count(*),parent_bc from table where column_name IN (...) group by 
parent_bc;

COUNT(*)  parent_bc
9         14018091
8         14018030
5         14018098
3         14018027

Теперь для той же таблицы я хочу получить записи (неагрегированные), но упорядочить по количеству из запроса выше. Например, "ВЫБРАТЬ столбцы из таблицы, где (...) ЗАКАЗАТЬ ...?

Возможно ли это даже в одном запросе?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Я думаю, вы просто хотите:

select count(*), parent_bc
from table
where column_name IN (...) 
order by count(*) over (partition by parent_bc) desc, parent_bc;

Обратите внимание, что это добавляет parent_bc в качестве второго ключа. Когда есть связи, это сохраняет значения для каждого parent_bc вместе.

0 голосов
/ 01 ноября 2018

Вы можете сделать это с помощью функции count.

select count(*) over(partition by parent_bc) as cnt_per_bc,t.* 
from table t
where column_name IN (...)
order by cnt_per_bc desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...