我在使用 mysql 查询时遇到问题,我想用 else if 语句选择 SUM,这就是我的故事。
我的查询:
SELECT SUM(s.total_revenue) AS sum_revenue, m.revenue_type AS revenue_type, d.campaignid AS placement_id
FROM ox_data_summary_ad_hourly AS s
INNER JOIN ox_banners AS d ON (d.bannerid = s.ad_id)
INNER JOIN ox_campaigns AS m ON (m.campaignid = d.campaignid)
INNER JOIN ox_clients AS a ON (a.clientid = m.clientid)
WHERE a.type = 0
GROUP BY placement_id
LIMIT 0 , 30
上面的查询得到如下结果:
我想生成查询: 如果revenue_type=4 会改变value sum_revenue = value placement_id, 我想要的示例结果如下图所示:
谢谢你的帮助。
最佳答案
您可以使用CASE
表达式来获取结果:
SELECT
case
when m.revenue_type = 4
then d.campaignid
else SUM(s.total_revenue) end AS sum_revenue,
m.revenue_type AS revenue_type,
d.campaignid AS placement_id
FROM ox_data_summary_ad_hourly AS s
INNER JOIN ox_banners AS d
ON (d.bannerid = s.ad_id)
INNER JOIN ox_campaigns AS m
ON (m.campaignid = d.campaignid)
INNER JOIN ox_clients AS a
ON (a.clientid = m.clientid)
WHERE a.type = 0
GROUP BY placement_id
LIMIT 0 , 30
关于MySQL 查询将 SUM 但 if 语句在其他字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533140/