Mysql-一周内发现价值增加

Mysql-一周内发现价值增加,mysql,Mysql,分数表 用户_idx int 日期时间 分数整数 我需要知道从今天起一周内总分增加了多少。我知道我需要两个相同的用户表,它们按user_idx分组,一个包含从过去到今天的总分,另一个包含从过去到一周前的总分 在那之后,从另一个中减去一个会给我答案。。。但我正在努力编写有效的sql查询来实现这一点 我试过了 SELECT BLAH BLAH FROM (SELECT user_idx, COUNT(*) as last_week_study_amount FROM user_tab

分数表

用户_idx int

日期时间

分数整数

我需要知道从今天起一周内总分增加了多少。我知道我需要两个相同的用户表,它们按user_idx分组,一个包含从过去到今天的总分,另一个包含从过去到一周前的总分

在那之后,从另一个中减去一个会给我答案。。。但我正在努力编写有效的sql查询来实现这一点

我试过了

SELECT BLAH BLAH 
FROM (SELECT user_idx, COUNT(*) as last_week_study_amount 
      FROM user_table 
      WHERE date <= date_sub(now(),INTERVAL 1 WEEK) 
      GROUP BY user_idx) 
AS a WHERE .....

你能帮我吗:?

让我澄清一下,你想得到上周的总数

尝试下面的查询

SELECT *
FROM (SELECT user_idx, COUNT(*) as last_week_study_amount 
      FROM user_table 
      WHERE date <= date_sub(now(),INTERVAL 1 WEEK) 
      GROUP BY user_idx) 
AS a WHERE .....

我最终写了这段代码,我认为这段代码可以正常工作。。。不确定它是最好的还是有严重错误。如果结果不好,我会更新它…

但我意识到这不是一种方法。所以,我目前正在谷歌上搜索是否可以将连接语法与SELECT结合使用。。从…起哪里格式化以创建另一个相同的表。如果这仍然不是一个合适的解决方案,我将开始查看UNION我想这篇文章给了我一些提示!考虑提供适当的DDL和/或SqLFIDLE连同期望的结果SEMTMM…不完全是。我想在一周内找到更高的分数。换句话说,总分-直到上周的总分。好的,那么我认为您提供的sql没有任何问题。请只运行子查询并检查是否得到结果?检查我编辑的答案。内部选择是否提供了无法在外部何处重复使用的已分组表?是否提供完整查询?
SELECT (SUM(score) - last_week_score) AS increased_score, 
FROM user a
JOIN (SELECT b.user_idx, COUNT(*) as last_week_score
  FROM userb
  WHERE date<= date_sub(now(),INTERVAL 1 WEEK)
  GROUP BY b.user_idx) As c ON a.user_idx = c.user_idx
WHERE DATE(date) <= DATE(NOW())
GROUP BY a.user_idx