gpt4 book ai didi

同表MySQL子查询

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

我在编写 MySQL 子查询时遇到问题。

SALES 表具有列名称:

sales_date | staff_id | sales_amount

记录每位员工的销售额。

我试图通过此查询实现的是一个表格,该表格显示选定员工的平均每日销售额以及所有员工的平均每日销售额。我只想显示所选员工有任何销售的日期。

SELECT staff_id, sales_date, AVG( sales_amount ) AS avgsales, sales_amount
FROM sales
GROUP BY sales_date
WHERE
(SELECT sales_date
FROM sales
WHERE staff_id = $staff_id) // this subquery shows all the dates that staff has records in

我希望它显示如下内容:

   Staff_id | Sales date | AverageSales | Employee_sales
---------+------------+--------------+----------------
001 | 2016-04-18 | £2000 | £1800
---------+------------+--------------+----------------
001 | 2016-04-17 | £3405 | £4000
---------+------------+--------------+----------------
001 | 2016-04-16 | £1450 | £1400
---------+------------+--------------+----------------

最佳答案

我使用的是 Oracle,所以这个 MySQL SQL 中可能会有错字。但是,我希望它能正常工作......

您有两个概念:每个人每天的平均销售额和每个用户每天的平均销售额。您想将这两件事结合在一起。您可以轻松做到。

首先,您有每天的平均销售额。

select sales_date, avg(sales_amount) as averagesales
from sales
group by sales_date

现在,您需要每个用户每天的平均销售额。

select staff_id, sales_date, avg(sales_amount) as employeesales
from sales
group by sales_date, staff_id

您希望将它们连接在一起。这很容易。

select * from (
select sales_date, avg(sales_amount) as averagesales
from sales
group by sales_date
)a join (
select staff_id, sales_date, avg(sales_amount) as employeesales
from sales
group by sales_date, staff_id
)b on a.sales_date=b.sales_date

这将在一次查询中为您提供 staff_id、sales_date、当天的平均销售额和当天的员工平均销售额。您可能希望按自己喜欢的方式订购、限制日期和其他事项。

关于同表MySQL子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701729/

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