SUM with COUNT : реально ли ?

Ekklipce

Новичок
SUM with COUNT : реально ли ?

PHP:
select count(DISTINCT proxy_ip) as num
from banner059.stat_days
where in_date_2 > DATE_SUB(NOW(), INTERVAL 8 DAY)
and page_id NOT IN(10, 6)
group by DATE_FORMAT(in_date_2,'%Y-%m-%d')
результат :
_______
12321
2342
5433
345435
34534
...

можно ли на уровне базы одним или subquery добиться вывода числа суммы всей этой байды ?
и должна соблюдаться групировка по дням !

задача решается легко другими алгоритмами, как то взять данные с промежуточной таблицы,

но можно ли вышеописанным способом ?
 

Andreika

"PHP for nubies" reader
[sql]select count(DISTINCT proxy_ip) as num
from banner059.stat_days
where in_date_2 > DATE_SUB(NOW(), INTERVAL 8 DAY)
and page_id NOT IN(10, 6)
group by DATE_FORMAT(in_date_2,'%Y-%m-%d') WITH ROLLUP
[/sql]
?
 

Ekklipce

Новичок
что то оно считает в конце, в последнем ряду после выводов рядов сумм, только вот что ? точно не сумму предыдущих чисел..

да и по какому бы алгоритму не суммировалось бы, результат добавляется в конец ))...тут желательна общая сумма в одном числе

результат

1994 2006-04-03
2657 2006-04-04
1357 2006-04-05
5145 NULL

1994+2657+1357 != 5145 :(
 

Wicked

Новичок
Ekklipce
может у тебя есть записи с NULLовой датой? :) если честно, не знаю, какое тут может быть поведение муси.
 

Ekklipce

Новичок
Невозможно!
во всех записях дата 100% есть, там инсерты с NOW() по таймстампу, а сортировка по формату гггг-мм-дд ))

короче я так понял что одним запросом\запросами задачу не решить.. :(
 

chira

Новичок
насколько я понял, подзапросы работают ...
Код:
SELECT SUM(num) Total_sum
FROM (
  select count(DISTINCT proxy_ip) as num
  from banner059.stat_days
  where in_date_2 > DATE_SUB(NOW(), INTERVAL 8 DAY)
  and page_id NOT IN(10, 6)
  group by DATE_FORMAT(in_date_2,'%Y-%m-%d')
)
 

zerkms

TDD infected
Команда форума
если нужна просто сумма всего - зачем вообще делать группировку и какие то другие телодвижения?

может просто
[sql]
SELECT SUM(proxy_ip) from banner059.stat_days
where in_date_2 > DATE_SUB(NOW(), INTERVAL 8 DAY)
and page_id NOT IN(10, 6)
[/sql]

?? ;)
 

Ekklipce

Новичок
2 zerkms

невнимательный :)
цитирую себя "должна соблюдаться групировка по дням"

то есть сумма сгрупированных по дню результатов уникальных, в твоем же случае будет сумма всех результатов.

впрочем, почему бы твой запрос не замутить как SUM(DISTINCT(proxy_ip))... завтра попробую..
 

zerkms

TDD infected
Команда форума
Ekklipce
да, чего то я упустил из внимания сий факт....
а SUM(DISTINCT(proxy_ip)) будет совсем не так работать. так что версия chira получается из представленных лучшая (см. работающая) ;)
 

Ekklipce

Новичок
работает, только в конце запрос надо добавить alial вложеной таблицы-запроса
иначе ошибка : Every derived table must have its own alias
 
Сверху