有这样一张表:t_tabname address age
张三 北京 30
李四 杭州 29
王五 北京 28
马六 杭州 27
冯七 杭州 26我想得到这样的查询效果:
查询出每一个地址都有哪些人
例如
北京 张三 王五
杭州 李四 马六 冯七请问该户和查询,能够使用group by语句直接实现吗?谢谢
张三 北京 30
李四 杭州 29
王五 北京 28
马六 杭州 27
冯七 杭州 26我想得到这样的查询效果:
查询出每一个地址都有哪些人
例如
北京 张三 王五
杭州 李四 马六 冯七请问该户和查询,能够使用group by语句直接实现吗?谢谢
from t_tab
group by address
SELECT address, ltrim(MAX(sys_connect_by_path(NAME, ',')), ',')
FROM (SELECT t.*, row_number() over(PARTITION BY address ORDER BY NAME) rn
FROM t_tab t)
START WITH rn = 1
CONNECT BY PRIOR rn = rn - 1
GROUP BY address;