id 传真编号 传真标题 传真内容 发送时间 发送人
1 20130917001 aaa1 测试1 2013/9/17 张三
2 20130917002 aaa2 测试2 2013/9/17 李斯
3 20130917003 aaa3 测试3 2013/9/17 王五
4 20130917004 aaa4 测试4 2013/9/17 李斯
5 20130917005 aaa5 测试5 2013/9/17 张三
6 20130917006 aaa6 测试6 2013/9/17 张三
(注:"发送人"列实际为引用用户表的主键user_id,为表达明白直接写用户名)
此表为传真发送记录表,需求:如何通过一条sql统计出每个人发送的传真信息?
统计结果如下:
用户 传真号
张三 20130917001
20130917005
20130917005
李斯 20130917002
20130917004
王五 20130917003 sql oracle
1 20130917001 aaa1 测试1 2013/9/17 张三
2 20130917002 aaa2 测试2 2013/9/17 李斯
3 20130917003 aaa3 测试3 2013/9/17 王五
4 20130917004 aaa4 测试4 2013/9/17 李斯
5 20130917005 aaa5 测试5 2013/9/17 张三
6 20130917006 aaa6 测试6 2013/9/17 张三
(注:"发送人"列实际为引用用户表的主键user_id,为表达明白直接写用户名)
此表为传真发送记录表,需求:如何通过一条sql统计出每个人发送的传真信息?
统计结果如下:
用户 传真号
张三 20130917001
20130917005
20130917005
李斯 20130917002
20130917004
王五 20130917003 sql oracle
null 20130917005
null 20130917005
from table t group by t.用户名;除了这种写法还有别的没?
sys_connect_by_path 9i中就可以使用
wm_concat 10g以上才可以使用
listagg 11gR2才可以使用
with a as
(
select '20130917001' as czbh,'张三' as fsr from dual union all
select '20130917002' as czbh,'李斯' as fsr from dual union all
select '20130917003' as czbh,'王五' as fsr from dual union all
select '20130917004' as czbh,'李斯' as fsr from dual union all
select '20130917005' as czbh,'张三' as fsr from dual union all
select '20130917006' as czbh,'张三' as fsr from dual
)
select wm_concat(czbh),fsr from a group by fsr