列转行然后合并

原始数据


转化后的数据

源代码:

SELECT
recordbytunnel.ttype,
recordbytunnel.tsequense,
tunnelId,
MAX(CASE DataType WHEN 1 THEN RowCount ELSE 0 END) AS '发送总数Cmpp',
MAX(CASE DataType WHEN 2 THEN RowCount ELSE 0 END) AS '发送总数Http',
MAX(CASE DataType WHEN 3 THEN RowCount ELSE 0 END) AS '发送成功总数Cmpp',
MAX(CASE DataType WHEN 4 THEN RowCount ELSE 0 END) AS '发送成功总数Http',

MAX(CASE DataType WHEN 5 THEN RowCount ELSE 0 END) AS '发送失败总数Cmpp',
MAX(CASE DataType WHEN 6 THEN RowCount ELSE 0 END) AS '发送失败总数Http',
MAX(CASE DataType WHEN 7 THEN RowCount ELSE 0 END) AS '送达成功总数Cmpp',
MAX(CASE DataType WHEN 8 THEN RowCount ELSE 0 END) AS '送达成功总数Http',

MAX(CASE DataType WHEN 9 THEN RowCount ELSE 0 END) AS '送达失败总数Cmpp',
MAX(CASE DataType WHEN 10 THEN RowCount ELSE 0 END) AS '送达失败总数Http'

FROM
recordbytunnel
group by tunnelId

然后合并或形成新的行

代码:

SELECT
recordbytunnel.ttype,
recordbytunnel.tsequense,
tunnelId,
MAX(CASE DataType WHEN 1 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 2 THEN RowCount ELSE 0 END) as 发送总数,
MAX(CASE DataType WHEN 3 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 4 THEN RowCount ELSE 0 END) AS '发送成功总数',
MAX(CASE DataType WHEN 5 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 6 THEN RowCount ELSE 0 END) AS '发送失败总数',
MAX(CASE DataType WHEN 7 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 8 THEN RowCount ELSE 0 END) AS '送达成功总数',
MAX(CASE DataType WHEN 9 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 10 THEN RowCount ELSE 0 END) AS '送达失败总数',
(
MAX(CASE DataType WHEN 1 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 2 THEN RowCount ELSE 0 END)-
(MAX(CASE DataType WHEN 7 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 8 THEN RowCount ELSE 0 END))-
(MAX(CASE DataType WHEN 9 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 10 THEN RowCount ELSE 0 END))
) as '送达未知状态总数'
FROM
recordbytunnel
group by tunnelI

新增了2月6日的数据,通道是332,此时需要汇总各个通道的数据



源代码:

SELECT ttype,tsequense,tunnelId,sum(发送总数),sum(发送成功总数),sum(发送失败总数),sum(送达成功总数),sum(送达失败总数),sum(送达未知状态总数) from
(
	SELECT SendDay,ttype,tsequense,tunnelId,
	MAX(CASE DataType WHEN 1 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 2 THEN RowCount ELSE 0 END) as 发送总数,
	MAX(CASE DataType WHEN 3 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 4 THEN RowCount ELSE 0 END) AS 发送成功总数,
	MAX(CASE DataType WHEN 5 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 6 THEN RowCount ELSE 0 END) AS 发送失败总数,
	MAX(CASE DataType WHEN 7 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 8 THEN RowCount ELSE 0 END) AS 送达成功总数,
	MAX(CASE DataType WHEN 9 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 10 THEN RowCount ELSE 0 END) AS 送达失败总数,
	(
	MAX(CASE DataType WHEN 1 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 2 THEN RowCount ELSE 0 END)-
	(MAX(CASE DataType WHEN 7 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 8 THEN RowCount ELSE 0 END))-
	(MAX(CASE DataType WHEN 9 THEN RowCount ELSE 0 END)+MAX(CASE DataType WHEN 10 THEN RowCount ELSE 0 END))
	) as 送达未知状态总数
	FROM
	recordbytunnel
	GROUP BY SendDay,tunnelId
)
temp1
GROUP BY tunnelId

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值