2017-08-28 3 views
1

上に直列数を生成し、私はdoctor_profilesレコードが、私はまた、私は週ごとの合計数を追加したい列approvedを持って週は、複数の列

SELECT w.week, COUNT(doctor_profiles.*) AS total 
FROM (SELECT generate_series(min(DATE_TRUNC('week', created_at)), 
          max(DATE_TRUNC('week', created_at)), 
          interval '7 day' 
          ) as week 
     FROM doctor_profiles 
    ) w LEFT JOIN 
    "doctor_profiles" 
    ON DATE_TRUNC('week', created_at) = w.week 
GROUP BY w.week 
ORDER BY w.week; 

によって作成されたどのように多く数える次のクエリを持っています。私はCOUNT(doctor_profiles.approved) as approved(論理フィールド)を追加しようとしましたが、カウントはdoctor_profilesと同じ番号を返します。その期間の終わりまでに承認されたすべてのdoctor_profilesの合計を照会するにはどうすればよいですか?

答えて

1

あなたは行うことができます。

SELECT w.week, COUNT(*) AS total, SUM(approved::int) as approved 
FROM (SELECT generate_series(min(DATE_TRUNC('week', created_at)), 
          max(DATE_TRUNC('week', created_at)), 
          interval '7 day' 
          ) as week 
     FROM doctor_profiles 
    ) w LEFT JOIN 
    "doctor_profiles" dp 
    ON DATE_TRUNC('week', created_at) = w.week 
GROUP BY w.week 
ORDER BY w.week;