Общие > Базы данных
запрос
Berkut:
есть таблица
--- Код: ---
visits (
id int(11) NOT NULL auto_increment,
partner_id int(11) default NULL,
long_ip bigint(20) NOT NULL default \'0\',
time int(10) unsigned NOT NULL default \'0\',
referer varchar(255) NOT NULL default \'\',
user_agent varchar(255) NOT NULL default \'\',
full_country varchar(100) NOT NULL default \'\',
unique tinyint(1) NOT NULL default \'0\',
PRIMARY KEY (id)
--- Конец кода ---
можно-ли подсчитать кол-во полей с определённым partner_id за время между определённым сроком с шагом в сутки? т.е. примерно следующее, но одним запросом:
for ($time = time(); $time > time() - 3600*24*30;$time-=3600*24) {
$begin = $time - 3600*24;
$res = mysql_query("SELECT COUNT(*) FROM visits WHERE partner_id=$id AND time BETWEEN $begin AND $time");
}
Макс:
Попробуй так :
$from = time() - 3600*24*30;
--- Код: ---
SELECT COUNT(*) , FROM_UNIXTIME(time, \'%Y-%m-%d\') as my_date
FROM visits
WHERE
partner_id = $id AND time BETWEEN $from AND $time
GROUP BY my_date
--- Конец кода ---
Berkut:
Макс ОГРОМНОЕ СПАСИБО! С меня ящик пива если появишся в Самаре
Berkut:
вопрос в догонку:
--- Код: ---SELECT COUNT( * ) , FROM_UNIXTIME( xaffilate_visits.time, \'%d\' )
as my_date, sum(
if (
xaffilate_visits.country_code = \'ru\', 1, 0
) )
as from_rus, xaffilate_stat.today
FROM xaffilate_visits, xaffilate_stat
WHERE xaffilate_visits.partner_id = 1 AND xaffilate_visits.time > 1000
and FROM_UNIXTIME( xaffilate_visits.time, \'%d\' ) = FROM_UNIXTIME( xaffilate_stat.time, \'%d\' )
GROUP BY my_date
ORDER BY xaffilate_stat.time
--- Конец кода ---
работает, но если в \'WHERE\' поставить не
FROM_UNIXTIME( xaffilate_visits.time, \'%d\' ) = FROM_UNIXTIME( xaffilate_stat.time, \'%d\' )
а
my_date=my_td - пишет неизвестный столбец my_date, хотя в
GROUP BY - "my_date" работает?! и хотелось-бы узнать, не слишком-ли страшный запрос?
Phoinix:
Berkut
Псевдонимы можно использовать только в условиях HAVING и при сортировке.
Навигация
Перейти к полной версии