2016-06-08 2 views
2

Я хочу, чтобы получить общее количество пользователей, зарегистрированных с моим сайтом в выбранном диапазоне дат, как выглядит следующим образом:Как использовать сумму (количество()) в MySQL

  1. 2 пользователей, зарегистрированных в 1 июня
  2. 1 пользователь на 2 июня
  3. 2 пользователей на 3 июня

Тогда мне нужен счетчик для

1 июня как 2

2 июня в 3

3 июня в 5

Вот мой запрос

SET @runtot:=0; 
SELECT 
    count(u.app_user_registered_date) as users_count, 
    (@runtot := count(u.app_user_registered_date) + @runout) AS rt,   
    date(u.app_user_registered_date) as registered_date 
FROM entr_user as u 
INNER JOIN entr_app_granted_permission_details as g 
ON g.device_id=u.device_id 
WHERE date(u.app_user_registered_date) between '2016-05-31' and '2016-06-03'  
GROUP BY date(u.app_user_registered_date) ORDER BY u.app_user_registered_date; 

Но значение к.т. является NULL здесь

+0

Пожалуйста, добавьте Определение таблиц. – DenisGL

+1

Сбросьте свои таблицы с помощью 'CREATE' и 'INSERT'. – phreakv6

+0

Какова цель 'rt'? – user2864740

ответ

1

Возможно, у вас есть потребность в к.т. , Нельзя сказать. Тем не менее, в вашей переменной есть опечатка: runtot. Предположительно, вы хотели бы написать: runout. Вот почему rt возвращает null. Здесь:

<?php 

     $SQL = "SET @runout:=0; 
       SELECT 
       COUNT(u.app_user_registered_date) AS users_count, 
       (@runout := count(u.app_user_registered_date) + @runout) AS rt, 
       DATE(u.app_user_registered_date) AS registered_date 
       FROM entr_user as u 
       INNER JOIN entr_app_granted_permission_details as g 
       ON g.device_id=u.device_id 
       WHERE date(u.app_user_registered_date) between '2016-05-31' and '2016-06-03' 
       GROUP BY date(u.app_user_registered_date) ORDER BY u.app_user_registered_date;"; 
0

использования, как это .. Всего пользователей в этот день

SELECT u.app_user_registered_date,COUNT(u.id) as users FROM `entr_user` as u 

INNER JOIN entr_app_granted_permission_details as g ON g.device_id=u.device_id 

WHERE date(u.app_user_registered_date) between '2016-06-07' and '2016-06-10' GROUP BY u.app_user_registered_date 

Всего пользователей в этот день и до этого дня Шифрование до FROM_DATE что мы данного

SELECT u.app_user_registered_date,COUNT(u.id) as users, 

(select COUNT(h.id) from entr_user as h 
    INNER JOIN entr_app_granted_permission_details as i ON i.device_id=h.device_id 
    where (DATE(h.app_user_registered_date) between '2016-06-07' and '2016-06-10') and 
    DATE(h.app_user_registered_date)<=DATE(u.app_user_registered_date) 
)as total_users 

FROM `entr_user` as u 
INNER JOIN entr_app_granted_permission_details as g ON g.device_id=u.device_id 
WHERE date(u.app_user_registered_date) between '2016-06-07' and '2016-06-10' GROUP BY u.app_user_registered_date