Dimonets
Guest
Сумма найденных записей - изврат???
Привет, всем!!!
Вот пишу потихоньку счетчик типа hotlog-a и сейчас делаю отчет о повторных посещениях. Данные будут выводиться следующим образом - новые посещения, 2-5 возвратов, 6-10 возвратов и тд.
На определение каждого числа решил использовать отдельный селект, дабы не усложнять все, поскольку если будет 5 селектов и каждый из них будет возвращать одну строку с суммой - ничего страшного не произойдет.
С новыми посещениями справился легко. Но вот с повторными посещениями не получается. Решил считать так - если у какого-нибудь пользователя за искомую дату было от 2-х до 5-ти entry_pages то он подходит под наше условие для определения ранга 2-5 возвратов. Сделал вот такой вот запрос:
SELECT visitor_id, ((COUNT(is_entry_page)>=2) AND (COUNT(is_entry_page)<=5)) AS temp_visits_flag FROM transactions WHERE (website_id='2' AND (date>='2003-10-26 00:00:00' AND date<='2003-10-26 23:59:59')) GROUP BY visitor_id HAVING temp_visits_flag=1
Этот запрос работает отлично, НО он возвращает мне Id (visitor_id) всех посетителей, которые соответствуют моему условию, а не сумму посетителей. Конечно, после выполнения $number = MYSQL_NUM_ROWS($result); мы в переменной $number имеем искомое число, но мне кажется, что лучше, если это число будет возвращаться MySQL-ем как единственный результат, а не список соответствующих посетителей, как сейчас...
Помогите как можно просуммировать количество найденных записей. Пытался при помощи переменных типа SUM(@t1:=1) as total_visitors, но это не дает нужного результата - так как суммирует несколько другие вещи из-за того, что мы используем GROUP BY visitor_id.
Зараннее благодарю!
Привет, всем!!!
Вот пишу потихоньку счетчик типа hotlog-a и сейчас делаю отчет о повторных посещениях. Данные будут выводиться следующим образом - новые посещения, 2-5 возвратов, 6-10 возвратов и тд.
На определение каждого числа решил использовать отдельный селект, дабы не усложнять все, поскольку если будет 5 селектов и каждый из них будет возвращать одну строку с суммой - ничего страшного не произойдет.
С новыми посещениями справился легко. Но вот с повторными посещениями не получается. Решил считать так - если у какого-нибудь пользователя за искомую дату было от 2-х до 5-ти entry_pages то он подходит под наше условие для определения ранга 2-5 возвратов. Сделал вот такой вот запрос:
SELECT visitor_id, ((COUNT(is_entry_page)>=2) AND (COUNT(is_entry_page)<=5)) AS temp_visits_flag FROM transactions WHERE (website_id='2' AND (date>='2003-10-26 00:00:00' AND date<='2003-10-26 23:59:59')) GROUP BY visitor_id HAVING temp_visits_flag=1
Этот запрос работает отлично, НО он возвращает мне Id (visitor_id) всех посетителей, которые соответствуют моему условию, а не сумму посетителей. Конечно, после выполнения $number = MYSQL_NUM_ROWS($result); мы в переменной $number имеем искомое число, но мне кажется, что лучше, если это число будет возвращаться MySQL-ем как единственный результат, а не список соответствующих посетителей, как сейчас...
Помогите как можно просуммировать количество найденных записей. Пытался при помощи переменных типа SUM(@t1:=1) as total_visitors, но это не дает нужного результата - так как суммирует несколько другие вещи из-за того, что мы используем GROUP BY visitor_id.
Зараннее благодарю!