oracle 行转列问题

select id,
name,
sum(decode(tag_name, 'AAA', nvl(value, 0),'BBB' ,nvl(value, 0),0)) "imp_value",
sum(decode(tag_name, 'C01', nvl(value, 0),'D01', nvl(value, 0), 0)) "click_value" from (SELECT a.id, a.name, d.tag_name, d.value
FROM A a
LEFT JOIN B b
ON a.id = b.id
left join d d
on b.imp_url = d.tag_name
union
SELECT a.id, a.name, d.tag_name, d.value
FROM A a
LEFT JOIN C c
ON a.id = c.id
left join d d
on c.click_url = d.tag_name) m
group by id, name
下面是根据id和name 将value合并成一列
select id,
name,
to_char(WMSYS.WM_CONCAT(tag_name)) tag_name,
to_char(WMSYS.WM_CONCAT(value)) value
from (SELECT a.id, a.name, d.tag_name, d.value
FROM A a
LEFT JOIN B b
ON a.id = b.id
left join d d
on b.imp_url = d.tag_name
union
SELECT a.id, a.name, d.tag_name, d.value
FROM A a
LEFT JOIN C c
ON a.id = c.id
left join d d
on c.click_url = d.tag_name) m
group by id, name
oracle 行转列问题的更多相关文章
- oracle 行转列 分析函数
oracle 行转列 首先看一下源数据: 方法一:WM_CONCAT group by 这个方法没有问题. SELECT CODE_TS, WMSYS.WM_CONCAT(S_NUM + || ':' ...
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- Oracle行转列、列转行的Sql语句总结(转)
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str f ...
- oracle 行转列、列转行
最近做数据处理,经常遇到需要行转列.列转行的场景,记录个非常简单实用的oracle 列转行.行转的列方法 1.行转列,基础数据如下 做行转列处理 处理SQL select user_name,max ...
- Oracle行转列操作
有时候我们在展示表中数据的时候,需要将行转为列来显示,如以下形式: 原表结构展示如下:---------------------------产品名称 销售额 季度------------ ...
- oracle行转列(连接字符串函数)
方法一:wmsys.wm_concat(column) 介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型.括号里面的参数是列,而且可以是多个列的集 ...
- Oracle行转列的函数
--行转列的函数-- CREATE OR REPLACE FUNCTION Calvin( col IN VARCHAR2,dw IN VARCHAR2) RETURN VARCHAR2 IS ret ...
- oracle 行转列 列转行
行转列 这是一个Oracle的列转行函数:LISTAGG() 先看示例代码: with temp as( select 'China' nation ,'Guangzhou' city from du ...
- oracle行转列、列转行、连续日期数字实现方式及mybatis下实现方式
转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9977591.html 九月份复习,十月份考试,十月底一直没法收心,赶在十一初 由于不可抗拒的原因又不得不重新找 ...
随机推荐
- Controllers
Controllers Controllers are the bread and butter of the framework they control when a model is used ...
- Android的几种alert对话框
@Override public void onClick(View v) { switch (v.getId()) { case R.id.d1: AlertDialog.Builder build ...
- ArrayList() 输出
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Li ...
- spark处理jsonFile
按照spark的说法,这里的jsonFile是特殊的文件: Note that the file that is offered as jsonFile is not a typical JSON f ...
- 几种RAID技术比较
http://book.51cto.com/art/201310/412862.htm RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力.目前服务器级别的计算机 ...
- items 与iteritems
dict的items函数返回的是键值对的元组的列表,而iteritems使用的是键值对的generator. items当使用时会调用整个列表 iteritems当使用时只会调用值. >> ...
- (十)Hibernate 查询方式
所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 查询方式简介 1,导航对象图查询方式: 2 ...
- .net链接Oracle数据操作类库
public abstract class OracleHelper { public OracleHelper() { } /// <summary> /// 数据库连接字符串 /// ...
- 安装sinopia-ldap
背景: 已经安装好sinopia,配置好本地npm源 安装sinopia-ldap: npm install -g sinopia-ldap 配置: 修改sinopia的配置文件config.yaml ...
- java中进制之间的转换
//十进制转其他进制 Integer.toHexString(10); //将10转换为十六进制,返回字符串类型 Integer.toOctalString(10); //将10转为八进制,返回字符串 ...