clevel
Новичок
Запрос выдает странные данные
Таблица statistic:
---------------------------------------------------------------
owner(int)|page(int)|when(timestamp(14))|execute(decimal(4,2))|
---------------------------------------------------------------
2 | 10 | 20020912032434 | 0.3234 |
---------------------------------------------------------------
2 | 11 | 20020912032435 | 0.5 |
---------------------------------------------------------------
2 | 10 | 20020912032635 | 0.44 |
---------------------------------------------------------------
запрос к таблице statistic:
SELECT
DATE_FORMAT(statistic.when,'%Y%m'),
COUNT(copy.page), //выдает КВАДРАТ необходимых данных
Min(copy.execute)/2+Max(copy.execute)/2
FROM statistic,statistic copy
WHERE statistic.owner=2
AND copy.owner=statistic.owner
AND DATE_FORMAT(copy.when,'%Y%m')=DATE_FORMAT(statistic.when,'%Y%m')
GROUP BY DATE_FORMAT(statistic.when, '%Y%m')
ORDER BY statistic.when
Таблица cookies:
-----------------------------------------
owner(int)|page(int)|when(timestamp(14))|
-----------------------------------------
2 | 10 | 20020912032434 |
-----------------------------------------
2 | 11 | 20020912032435 |
-----------------------------------------
2 | 10 | 20020912032635 |
-----------------------------------------
Запрос к таблицам cookies,statistic:
SELECT
DATE_FORMAT(cookies.when,'%Y%m'),
cookies.page,
COUNT(cookies.page) //выдает значение, увеличеннное в 91 раз
FROM statistic,cookies
WHERE statistic.owner=2
AND cookies.owner=statistic.owner
AND DATE_FORMAT(cookies.when,%Y%m)=DATE_FORMAT(statistic.when,'%Y%m')
GROUP BY DATE_FORMAT(statistic.when, '%Y%m'),cookies.page
ORDER BY statistic.when
Вопросы:
1.Почему в первом запросе возвращает одно из значений, возведенное во вторую степень, а во втором случае - умноженную на 91. В чем ошибка, приводящая к искажению результатов?
2.Можно ли заменить DATE_FORMAT(...) в теле WHERE как-нибудь, так как в SELECT такая конструкция уже имеется. Пытался сделать так: SELECT DATE_FRMAT(..) AS num и далее использовать num, однако выдает ошибку...
Таблица statistic:
---------------------------------------------------------------
owner(int)|page(int)|when(timestamp(14))|execute(decimal(4,2))|
---------------------------------------------------------------
2 | 10 | 20020912032434 | 0.3234 |
---------------------------------------------------------------
2 | 11 | 20020912032435 | 0.5 |
---------------------------------------------------------------
2 | 10 | 20020912032635 | 0.44 |
---------------------------------------------------------------
запрос к таблице statistic:
SELECT
DATE_FORMAT(statistic.when,'%Y%m'),
COUNT(copy.page), //выдает КВАДРАТ необходимых данных
Min(copy.execute)/2+Max(copy.execute)/2
FROM statistic,statistic copy
WHERE statistic.owner=2
AND copy.owner=statistic.owner
AND DATE_FORMAT(copy.when,'%Y%m')=DATE_FORMAT(statistic.when,'%Y%m')
GROUP BY DATE_FORMAT(statistic.when, '%Y%m')
ORDER BY statistic.when
Таблица cookies:
-----------------------------------------
owner(int)|page(int)|when(timestamp(14))|
-----------------------------------------
2 | 10 | 20020912032434 |
-----------------------------------------
2 | 11 | 20020912032435 |
-----------------------------------------
2 | 10 | 20020912032635 |
-----------------------------------------
Запрос к таблицам cookies,statistic:
SELECT
DATE_FORMAT(cookies.when,'%Y%m'),
cookies.page,
COUNT(cookies.page) //выдает значение, увеличеннное в 91 раз
FROM statistic,cookies
WHERE statistic.owner=2
AND cookies.owner=statistic.owner
AND DATE_FORMAT(cookies.when,%Y%m)=DATE_FORMAT(statistic.when,'%Y%m')
GROUP BY DATE_FORMAT(statistic.when, '%Y%m'),cookies.page
ORDER BY statistic.when
Вопросы:
1.Почему в первом запросе возвращает одно из значений, возведенное во вторую степень, а во втором случае - умноженную на 91. В чем ошибка, приводящая к искажению результатов?
2.Можно ли заменить DATE_FORMAT(...) в теле WHERE как-нибудь, так как в SELECT такая конструкция уже имеется. Пытался сделать так: SELECT DATE_FRMAT(..) AS num и далее использовать num, однако выдает ошибку...