【发布时间】:2013-05-21 10:45:26
【问题描述】:
我曾经有一个查询
SELECT ps_target_ecpm, ps_actual_ecpm
FROM publisher_stats
JOIN domain ON domain.dmn_id = ps_dmn_id
LEFT JOIN langue ON langue.lng_id = domain.default_lng_id
WHERE MONTH(ps_month) = 05
我需要的结果应该是这样的
may_target_ecmp、may_actual_ecpm、april_target_ecpm、 april_actual_ecpm、march_target_ecpm、march_actual_ecpm。
4 月 MONTH(ps_month) = 04 和 3 月 MONTH(ps_month) = 03 分别。
经过一番询问,我最终得到了一个看起来像这样的查询
SELECT
(CASE WHEN MONTH(ps_month) = 4 THEN ps_target_ecpm ELSE 0 END) AS april_target_ecpm,
(CASE WHEN MONTH(ps_month) = 4 THEN ps_actual_ecpm ELSE 0 END) AS april_actual_ecpm,
(CASE WHEN MONTH(ps_month) = 3 THEN ps_target_ecpm ELSE 0 END) AS march_target_ecpm,
(CASE WHEN MONTH(ps_month) = 3 THEN ps_actual_ecpm ELSE 0 END) AS march_actual_ecpm
FROM publisher_stats
JOIN domain ON domain.dmn_id = ps_dmn_id
LEFT JOIN langue ON langue.lng_id = domain.default_lng_id
我得到的结果不是我所需要的。 示例响应是:
0 0 0.48 0.27
0.48 0.47 0 0
虽然我需要它在一行中
0.48 0.47 0.48 0.27
能否请您帮我弄清楚如何使这个查询达到预期的效果。 提前致谢
附:这个问题从这个问题一路而来——mysql pivoting - how can I fetch data from the same table into different columns?
【问题讨论】:
标签: mysql pivot-table