gpt4 book ai didi

mysql - (以今天计算)减去(以前一天计算)持续 1 个月

转载 作者:行者123 更新时间:2023-11-30 21:32:34 27 4
gpt4 key购买 nike

如何查询今天的总和需要减去前一天的总和,每天持续一个月。

SELECT COUNT(DISTINCT member_profile.memberProfileNumber)
FROM member_profile
LEFT JOIN member_token
ON member_profile.id = member_token.memberProfileId
WHERE member_profile.memberProfileNumber LIKE 'MM%';

我有两个表和列如下:

表 member_profile

memberProfileNumber
id

表member_token

memberProfileId
createdAt

预期结果:

Expected Result

最佳答案

如果你使用的是 MySQL 8.0,你可以在子查询中进行聚合,然后在外部查询中使用 LAG(...) OVER(...) 来带入值从前一天开始,例如:

SELECT 
createdAtDay,
cnt,
cnt - LAG(cnt) OVER(ORDER BY createdAtDay) cnt_diff
FROM (
SELECT DATE(mt.createdAt) createdAtDay, COUNT(DISTINCT mf.memberProfileNumber) cnt
FROM member_profile mf
INNER JOIN member_token mt
ON mf.id = mt.memberProfileId
AND mt.createdAt >= NOW() - INTERVAL 1 MONTH
WHERE mf.memberProfileNumber LIKE 'MM%' AND
GROUP BY DATE(createdAt)
) x

NB1:我认为 LEFT JOIN member_token 应该是 INNER JOIN member_token,因为列 member_token.createdAt 用于聚合结果。

NB2:子查询过滤上个月内创建的 token 。

关于mysql - (以今天计算)减去(以前一天计算)持续 1 个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55450742/

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