你这个给的示例内容还是略少,不清楚具体数据咋样的。我猜测一下啊,你这里的 id 都是 1 ,那是不是还存在着 id = 2, key = a 。。。。 这样的数据?如果存在的话,那么每个 id 下的 key 都是 a,b,c 三个么? 如果每个 id 下的 key 的数量不同,那你这个查询很难办啊,转换后每行的列数都不同了…… 而如果每个 id 下的 key 是相同的,那你可以考虑用 case when 配合聚合函数来写, 这种写法 mysql 应该也能使。
delavior
2015-10-21 16:54:35 +08:00
@caoyue 是用的 oracle,不过 PIVOT 没用过,查了一下,貌似类似 case when ?等会试一下
@delavior a,b,c 固定的话就简单了。 select id, a, b, c from (select id, sum(case key when 'a' then value else 0 end) as a, sum(case key when 'b' then value else 0 end) as b, sum(case key when 'c' then value else 0 end) as c from T group by id )
第 1 页 / 共 1 页
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。