天天看點

mysql豎表查詢結果展示為橫表結構

方案一:


SELECT 
SUM(aa) as aa,
SUM(bb) as bb
FROM (
SELECT
dataTime,
metric_value as aa,
0 as bb
FROM UserTable
WHERE 
metric_code='aa'
UNION ALL

SELECT 
dataTime,
0 as aa,
metric_value as bb
FROM 
           
UserTable
WHERE 
metric_code='bb'
) boss 
WHERE 1=1
AND dataTime>='2018-05-01'
           

方案二:

SELECT 
a.dataTime,
MAX(case a.metric_code when 'aa' then a.metric_value else 0 end) aa,
MAX(case a.metric_code when 'bb' then a.metric_value else 0 end) bb
FROM(
	SELECT
	DATE_FORMAT(dataTime,'%Y-%m') dataTime,
	metric_code,
	sum(metric_value) metric_value
	FROM UserTable
	WHERE 
	dataTime>='2018-05-01'
	AND
	(metric_code='aa'
	OR metric_code='bb')
	GROUP BY DATE_FORMAT(dataTime,'%Y-%m'),metric_code
)a GROUP BY dataTime
           

繼續閱讀