Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите с SQL запросом для mysql 3 / 2 сообщений из 2, страница 1 из 1
29.09.2005, 14:50:36
    #33296059
Anton Kudris
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом для mysql 3
есть старый добрый (3х) мysql.
Есть таблица, куда складывается лог от сквида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE `squid_log` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `user_ip` varchar(15) NOT NULL default '',
  `size` int(10) unsigned NOT NULL default '0',
  `time` datetime NOT NULL default '0000-00-00 00:00:00',
  `free_flag` tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `user_ip_index` (`user_ip`),
  KEY `datetime_index` (`time`)
) TYPE=MyISAM;

Что я хочу сделать: (может и нельзя так...) за 1 запрос получить уникальный список ip (столбец user_ip) для каждого ip нужно подсчитать сумму size отдельно для всех строк, где free_flag = 0 и free_flag = 1.

Вот запрос, который дает мне две колонки
Код: plaintext
1.
SELECT user_ip, SUM(`size`) AS 'f' FROM squid_log
WHERE free_flag = 1 group by user_ip ORDER BY 'f' DESC

а мне нужна ещё третья колонка, для которой условие равно free_flag = 0.

думаю смысл иде понятен - получить список ip и для каждого пользователя посчитать сумму халявного и платного трафика (на самом деле ещё нужно и за определенный период времени).

Можно тут 1им запросом обойтись ?
...
Рейтинг: 0 / 0
29.09.2005, 15:03:23
    #33296099
Anton Kudris
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с SQL запросом для mysql 3
сам разобрался

Код: plaintext
1.
2.
3.
4.
5.
SELECT s.user_ip, SUM(s.size) AS 'total', SUM(l.size) AS 'free', SUM(l2.size) AS 'paid' FROM squid_log s
LEFT JOIN squid_log l ON s.id = l.id AND l.free_flag = 1
LEFT JOIN squid_log l2 ON s.id = l2.id AND l2.free_flag = 0
WHERE DAYOFMONTH(s.time) = 29 AND MONTH(s.time) = 09 AND YEAR(s.time) = 2005
group by s.user_ip
ORDER BY 'total' DESC

в принципе 3 столбца то и не надо... хватит и 2-х: total и paid
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите с SQL запросом для mysql 3 / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]