gpt4 book ai didi

sql - 我如何找到拥有最活跃卖家(每个用户每天最多的软件销售量)的团队?

转载 作者:行者123 更新时间:2023-12-04 10:16:48 25 4
gpt4 key购买 nike

我如何找到拥有最活跃卖家(每个用户每天最多的软件销售量)的团队?
我想做类似这样的查询,但感觉不太安静,对吧

SELECT users.team_id, count(*) as sales FROM users
INNER JOIN activity ON users.user_id = activity.user_id
WHERE activity.sales = software
GROUP BY users.team_id
ORDER BY sale DESC

我的用户表如下所示:
user_id       team_id  
0 62
1 32
2 21

虽然我的事件表如下所示:
user_id      sale_date              sale
1 2019-05-02 11:02:39 hardware
2 2018-05-02 11:02:53 software
2 2019-06-02 11:42:33 software

最佳答案

听起来这是一个循序渐进的查询,所以让我们从最里面的部分开始:获取每个用户每天的销售计数。

SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id

那么我们可以 get the most active user for each day :
SELECT DISTINCT ON (sale_date) sale_date, user_id
FROM (
SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id
) AS counts_by_date_and_user
ORDER BY sale_date, sales -- consider breaking ties somehow

然后我们可以计算用户一天中最活跃的频率,按此排序,并获取他们的团队 ID。
SELECT team_id, user_id, count(*) as days
FROM (
SELECT DISTINCT ON (sale_date) sale_date, user_id
FROM (
SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id
) AS counts_by_date_and_user
ORDER BY sale_date, sales -- consider breaking ties somehow
) AS most_active
JOIN users USING (user_id)
GROUP BY user_id
ORDER BY days DESC

关于sql - 我如何找到拥有最活跃卖家(每个用户每天最多的软件销售量)的团队?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61030520/

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