mysql - 优化 MySQL 查询

标签 mysql optimization

我想运行一个查询来生成广告系列的收入报告。有2张 table 成员(member)和付款。

members (id, campaign_code)
payments (id, member_id, amount)

我想创建一个按campaign_code分组的表格,即采用这种格式

campaign_code, member_count, total_revenue 

我将所有营销事件放入一个数组中并运行它,

SELECT sum( amount ) AS amt
FROM (members
INNER JOIN payments 
    ON payments.member_id = members.id
)
WHERE campaign_code = 'XX'

这需要很多时间。无论如何要优化它还是在单个查询中完成它?

最佳答案

正如您所说,您需要聚合所有营销事件代码,请尝试此

SELECT m.campaign_code , count(p.member_id) AS member_count,
  SUM( amount ) AS total_revenue
FROM members m, payments p
WHERE p.member_id = m.id
GROUP BY campaign_code;

确保阅读mysql group by function

关于mysql - 优化 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178013/

相关文章:

c# - 如何使用 C# 连接多个数据库 MySQL?

python - Django 没有正确连接到 MySQL,抛出 "ImportError: cannot import name ' NULL'"

sql - MySQL查询优化

r - `contrasts<-` (`*tmp*` 中出现错误,值 = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels

ruby-on-rails - 您如何查看 ruby​​ 中的调用堆栈示例?

mysql - 获取所选年份的所有日期

PHP 没有按预期从 MySQL 查询返回结果

php - 通过sql中的用户名检索用户信息

optimization - 优化了矩形中相同大小的正方形的包含

mysql - 优化基于分层数据的类别表