gpt4 book ai didi

SQL - 加入总计和每周总计的 2 个子查询

转载 作者:行者123 更新时间:2023-11-29 01:46:51 25 4
gpt4 key购买 nike

我需要为给定部门的每个销售员创建一份包含总销售额和过去 7 天销售额的报告。我有一个表,其中列出了每次销售的日期、金额和销售员的 ID,还有一个表将销售员映射到部门。

如何在单个查询中同时显示周总和?

每个的查询是:

SELECT user_id,sum(amount) AS total_amount
FROM sales
LEFT JOIN users
ON sales.user_id = users.id
WHERE users.department = 1
GROUP BY user_id

SELECT user_id,sum(amount) AS total_amount 
FROM sales
LEFT JOIN users
ON sales.user_id = users.id
WHERE users.department = 1 AND date > (NOW()-INTERVAL 1 WEEK)
GROUP BY user_id

我可以为其中一个表创建 View ,但由于我只需要给定部门(有很多)的记录,因此使用将为所有部门生成结果的 View 似乎效率不高。

最佳答案

这是一种通过一次表扫描来查询两者的方法:

SELECT  user_id
, sum(amount) as total
, sum(case when date > (NOW()-INTERVAL 1 WEEK) then amount end) as weekly
FROM sales
LEFT JOIN
users
ON sales.user_id = users.id
WHERE users.department = 1
GROUP BY
user_id

这使用 case 从第二个 sum() 中过滤出较旧的行。

关于SQL - 加入总计和每周总计的 2 个子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com