повторно использовать псевдоним таблицы в другом выборе - PullRequest
1 голос
/ 07 сентября 2011

У меня есть заявление sql:

select id from table1 t1, table t2 
where.....
order by ( select count(owner_id) from t2) ASC;

Здесь я хочу выбрать идентификатор элемента, у владельца которого наименьшее количество элементов.

Возможно ли это? Если нет, что я могу сделать, чтобы достичь цели?

Заранее спасибо!

1 Ответ

2 голосов
/ 07 сентября 2011

Вы не упоминаете, какой SQL вы используете, но вы можете сделать это или что-то подобное в PL (и My, я верю);Я предполагаю, что вы связываете таблицы 1 и 2 с id;Я не заказывал только count (owner_id), так как это всегда будет одно и то же значение.Очевидно, разделите все, что вы хотите, чтобы получить правильное количество вы ищете.

select id
  from ( select t1.id, t2.ct
           from table1 t1
              , ( select id, count(owner_id) over ( partition by id ) as ct
                    from table2 )  t2 
          where t1.id = t2.id 
          order by t2.ct ASC )
       ;
...