假设有如下数据:
CREATE TEMPORARY TABLE temp_test SELECT rs.* FROM (
SELECT 'A' title, 1 TYPE FROM DUAL UNION ALL
SELECT 'B' title, 1 TYPE FROM DUAL UNION ALL
SELECT 'C' title, 1 TYPE FROM DUAL UNION ALL
SELECT 'D' title, 2 TYPE FROM DUAL UNION ALL
SELECT 'E' title, 2 TYPE FROM DUAL
)rs;
现在需要select 结果如下(type一样的时候,title加上序号):
title type
1.A 1
2.B 1
3.C 1
1.D 2
2.E 2
是否可以通过sql达到这个目的?如果可以,那么type有多组且是动态的情况时,应该如何处理?
请大侠指教~
CREATE TEMPORARY TABLE temp_test SELECT rs.* FROM (
SELECT 'A' title, 1 TYPE FROM DUAL UNION ALL
SELECT 'B' title, 1 TYPE FROM DUAL UNION ALL
SELECT 'C' title, 1 TYPE FROM DUAL UNION ALL
SELECT 'D' title, 2 TYPE FROM DUAL UNION ALL
SELECT 'E' title, 2 TYPE FROM DUAL
)rs;
现在需要select 结果如下(type一样的时候,title加上序号):
title type
1.A 1
2.B 1
3.C 1
1.D 2
2.E 2
是否可以通过sql达到这个目的?如果可以,那么type有多组且是动态的情况时,应该如何处理?
请大侠指教~
可以参考一下
set @row=0;set @mid_type='';
SELECT title, TYPE,concat(case when @mid_type = TYPE then @row:=@row+1 else @row:=1 end ,',',title),@mid_type:=TYPE
FROM temp_test order by title;
[征集]分组取最大N条记录方法征集,及散分....