visit
MySQL таблицы:Получить Посещение Считает из разных мест
+---------+-------------+------------+--------+---------------------+
| visitId | visitSiteId | homeSiteId | userId | time |
+---------+-------------+------------+--------+---------------------+
| 1 | 1 | 1 | 1001 | 2013-09-01 11:50:12 |
| 2 | 1 | 1 | 1001 | 2013-09-03 12:50:12 |
| 3 | 2 | 1 | 1001 | 2013-09-04 13:50:12 |
| 4 | 2 | 1 | 1001 | 2013-09-07 11:00:00 |
| 5 | 2 | 1 | 1001 | 2013-09-09 12:32:12 |
| 6 | 2 | 1 | 1001 | 2013-09-13 15:48:12 |
| 7 | 2 | 2 | 1002 | 2013-09-01 11:00:12 |
| 8 | 2 | 2 | 1002 | 2013-09-02 12:50:12 |
| 9 | 2 | 2 | 1002 | 2013-09-05 13:50:12 |
| 10 | 1 | 2 | 1002 | 2013-09-06 11:50:12 |
| 11 | 1 | 2 | 1002 | 2013-09-07 12:50:12 |
| 12 | 2 | 2 | 1002 | 2013-09-15 13:50:12 |
+---------+-------------+------------+--------+---------------------+
отчеты посетить DateTime, сайт посетили и домашних пользователей сайта
Я хочу найти способ вывода 3 Отчеты От приведенных выше данных.
- Возврат любых пользователей, у которых есть счетчик посещений на домашней странице> = HomeSite Visit Count; any Дата
- Возврат любых пользователей, у которых есть счетчик посещений на домашней странице> = a Минимальное количество целых чисел, например. Non Home Count> = 10
- И 1 и 2 с диапазоном дат, т.е. время> = '2013-09-01 11:50:12' И время < = '2013-09-13 15:48:12'
Я новичок в MySQL и бороться с синтаксисом подзапроса так был бы признателен за любую помощь: запросов Ниже будет возвращать счетчики посещений на дому и не домашней Визиты, но я не могу получить мою голову вокруг подзапроса комбинированного результата
SELECT COUNT(v.user_id), v.user_id FROM visit v WHERE v.Site <> v.HomeSite GROUP BY v.user_id;
SELECT COUNT(v.user_id), v.user_id FROM visit v WHERE v.Site = v.HomeSite GROUP BY v.user_id;
SELECT COUNT(v.user_id), v.user_id FROM visit v WHERE v.Site <> v.HomeSite AND v.Time >= '2013-09-01 11:50:12' AND v.Time <= '2013-09-13 15:48:12' GROUP BY v.user_id;
SELECT COUNT(v.user_id), v.user_id FROM visit v WHERE v.Site = v.HomeSite AND v.Time >= '2013-09-01 11:50:12' AND v.Time <= '2013-09-13 15:48:12' GROUP BY v.user_id;
Вот таблица MySQL Create и INSERT Data для оказания помощи при тестировании:
CREATE TABLE `dbName`.`visit`(`visitId` INT(11) NOT NULL AUTO_INCREMENT, `visitSiteId` INT(11), `homeSiteId` INT(11), `userId` INT(11), `time` DATETIME, PRIMARY KEY (`visitId`));
INSERT INTO `dbName`.`visit`(`visitSiteId`,`homeSiteId`,`userId`,`time`) VALUES
(1,1,1001,'2013-09-01 11:50:12'),
(1,1,1001,'2013-09-03 12:50:12'),
(2,1,1001,'2013-09-04 13:50:12'),
(2,1,1001,'2013-09-07 11:00:00'),
(2,1,1001,'2013-09-09 12:32:12'),
(2,1,1001,'2013-09-13 15:48:12'),
(2,1,1002,'2013-09-01 11:00:12'),
(2,1,1002,'2013-09-02 12:50:12'),
(2,1,1002,'2013-09-05 13:50:12'),
(1,1,1002,'2013-09-06 11:50:12'),
(1,1,1002,'2013-09-07 12:50:12'),
(2,1,1002,'2013-09-15 13:50:12');
К сожалению, расположение не вышло, как в текстовом редакторе. Запросы внизу вопроса будут строить и вставлять данные таблицы. – FLOG51
И каков желаемый результат для каждого требуемого отчета на основе предоставленных выборочных данных или комбинированного отчета (BTW это не ясно из вашего вопроса)? – peterm