Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将mysql查询从一个周期扩展到多个周期_Mysql_Sql - Fatal编程技术网

将mysql查询从一个周期扩展到多个周期

将mysql查询从一个周期扩展到多个周期,mysql,sql,Mysql,Sql,我有一个查询,它统计给定字段在给定的一周内的不同值的数量,而以前没有。它统计本周新值的数量 SELECT COUNT(DISTINCT (field)) FROM table WHERE (creation BETWEEN CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) + 5 DAY AND CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY) AND field NO

我有一个查询,它统计给定字段在给定的一周内的不同值的数量,而以前没有。它统计本周新值的数量

SELECT 
    COUNT(DISTINCT (field))
FROM
    table
WHERE
    (creation BETWEEN CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) + 5 DAY AND CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY)
        AND field NOT IN (SELECT DISTINCT
            (field)
        FROM
            table
        WHERE
            creation < CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) + 5 DAY);
我需要扩展查询,以便能够在过去两个月的所有周内进行相同的计算


我该怎么做呢?

好吧,如果我理解正确,一个字段在某个星期内第一次出现。您希望每周统计此类首次出现的次数。因此,首先获取每个字段的第一个日期。然后每周数一次

select 
  yearweek(first_occurence),
  count(*)
from
(
  select field, min(creation) as first_occurence
  from table
  group by field
) fields
group by yearweek(first_occurence)
order by yearweek(first_occurence);