MySQL 查询将 SUM 但 if 语句在其他字段中

标签 mysql

我在使用 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

上面的查询得到如下结果:

enter image description here

我想生成查询: 如果revenue_type=4 会改变value sum_revenue = value placement_id, 我想要的示例结果如下图所示:

enter image description here

谢谢你的帮助。

最佳答案

您可以使用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/

相关文章:

mysql - Rails Query 选择最新记录的最佳方法

php - 更新mysql错误

php - MySQL GROUP BY 和 ORDER BY 问题

mysql - 甚至显示学期时出现此错误

php - 不同和组 SQL 查询

mysql - 如何从 mysql 表中获取随机行

mysql - 使用group by时如何在单列中获取多个值?

MySQL 链接表获取插入的最后一行 table.value = X

MySQL SELECT 查询具有多个表的联结表

javascript - 使用 Node.js 将表单数据发布到 MySQL