2017-02-17 5 views
1

開始日と終了日が指定された週に登録されたユーザー数を取得する必要があります。 は今使用されるロジックは次のとおりです。Mysqlは週2回のレポートを取得します

week_days_list = [['2017-01-01', '2017-01-07'], ['2017-01-08', '2017-01-14']] 

for week in week_days_list: 
    query = 'SELECT COUNT('*') AS `__count` FROM `user_table` 
      INNER JOIN `user_auth` ON (`user_table`.`user_id` = `user_auth`.`id`) 
      WHERE `user_auth`.`date_joined` BETWEEN week[0] 
      AND week[1];' 

結果は次のとおりです。


__count


私はそれが1つのクエリにそれを減らしたいです。 例:


週間間隔|カウント

'2017-01-01' | 15

'2017-01-08' |

SELECT 
    YEAR(date_joined) `__year`, 
    WEEK(date_joined) `__week`, 
    COUNT(*)   `__count` 
FROM 
    user_table 
JOIN 
    user_auth ON 
     user_table.user_id = user_auth.id 
GROUP BY 
    YEAR(date_joined), 
    WEEK(date_joined) 

I:事実によって行く12


答えて

0

は、あなたは、次のようなものでそれを行うことができ、2017年1月7日に2017年1月1日であることを2017年の第1週を検討しますこれは完全にテストされていないことに注意してください。

0
Use the __range operator: 

...filter(current_issue__isnull=True, created_at__range=(start_date, end_date)) 
関連する問題