我有一个表a,里面有三个字段,股票id,成本,收益 毛利率的计算公式是mao=(成本-收益)/成本 现在需要按照2个区间得到股票排名的名次 0.1<mao≤1 mao≤0.1 也就是说假如毛利率<=0.1的有500个股票,毛利率在0.1和1之间的有1500个股票 那么股票的排名的名次分别是1~500和1~1500 SQL code: select * ,(select count(1) from (select *,case when (成本-收益)*1.0/成本<=0.1 then 0.1 else 1 end mao from [a]) bb where mao=aa.mao and (成本-收益)*1.0/成本<=(aa.成本-aa.收益)*1.0/aa.成本 ) from (select *,case when (成本-收益)*1.0/成本<=0.1 then 0.1 else 1 end mao from [a])aa
谢谢啊,如果是更多区间呢? A≤0 0<A≤0.2 0.2<A≤0.4 0.4<A≤1
比如这种,那你的case when 里面不就不够算了? 那你就case when 里加when啊 能不能用rank这样的函数实现呢?