日期:2014-05-19  浏览次数:20447 次

分组后排序
表如下(TableA)
  pack_name     node_index
      A                       2
      C                       1
      B                       1
      C                       3
      C                       2
      D                       1
      A                       1

希望先按照   pack_name   分组后,在每组里按照node_index排序.怎么写啊。
我写的好象不可以.
select   Pack_name   ,node_index   from   TableA   group   by   Pack_name   order   by   node_index     ??

------解决方案--------------------
select Pack_name ,node_index
-- group by Pack_name , 故 node_index 只能保留一个, 这里必须对 node_index 用聚合
from TableA
group by Pack_name
order by node_index
-- group by Pack_name , 故 node_index 只能保留一个, 这里必须对 node_index 用聚合

------解决方案--------------------
希望先按照 pack_name 分组后,在每组里按照node_index排序.怎么写啊。
我写的好象不可以.
select Pack_name ,node_index from TableA group by Pack_name order by node_index ??

------------
group by 是和聚集函数同時使用的,不知LZ是要按pack_name 分組取最大值,最小值,統計個數
還是求和,按照node_index排序,都可以這樣寫

select pack_name,sum(node_index)as node_index from t group by pack_name order by sum(node_index)

select pack_name,count(*)as node_index from t group by pack_name order by count(*)


select pack_name,max(node_index)as node_index from t group by pack_name order by max(node_index)

select pack_name,min(node_index)as node_index from t group by pack_name order by min(node_index)