在另一个select中重用表别名

时间:2011-09-07 15:58:49

标签: sql select alias

我有一个sql语句:

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

我想在这里做的是选择所有者拥有最少项目数的项目的ID。

这可能吗?如果没有,我能做些什么才能达到目标?

提前致谢!

1 个答案:

答案 0 :(得分:2)

你没有提到你正在使用的SQL,但是你可以在PL(以及我相信)中做到这一点,或类似的东西;我假设你在id上链接表1和2;我没有单独按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 )
       ;