2017-06-14 9 views
0

私は、前にレコーダーを使用していない所与の週の所与のフィールドの別個の値の数をカウントするクエリを持っています。その週の新しい値の数を数えます。ある期間にmysqlクエリをマルチプル期間に延長します。

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); 

過去2か月間のすべての週について同じ計算を実行できるようにクエリを拡張する必要があります。

どうすればいいですか?

答えて

1

これを正しく理解すれば、最初は数週間でフィールドが発生します。このような最初の出来事がいくつあるかを週に数えたいと思う。フィールドごとに最初の日付を最初に取得します。週に数えます。

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); 
関連する問題