Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > запрос (DISTINCT)


Автор: djkostya 22.6.2006, 13:27
Ребята помогите....
Есть таблица

|date|count|

Фрмат такой

| 2006-06-21 12:44:14 | 340 |
| 2006-06-21 23:00:01 | 560 |
| 2006-06-22 10:45:24 | 150 |
| 2006-06-22 15:50:00 | 200 |


Мне нужно вывести

Мне нужно что б в поле date было только число месяца например 21 и во второй были подсчитаны результаты |900|

Составил запрос

SELECT DISTINCT(DATE_FORMAT(`date`,'%d') ) FROM `log`
Он выводит число месяца а вот как сделать чтоб ещё вывелось колличество результатов....

SELECT DISTINCT(DATE_FORMAT(`date`,'%d') ), MAX(`count`) FROM `log` что что не пашет ............... 

Автор: Аленка 22.6.2006, 13:44
 
Код

 select DATE_FORMAT(`date`,'%d') 'day', SUM('count') from 'log' group by 'day' 

может так?    

Автор: djkostya 22.6.2006, 13:56
нет я так пробовал мне надо чтоб получилось так 

|21|900|
|22|350|

То есть 2006-06-22 15:50:00  должно выслиться неповторяющее значение потом суммировать от этого значения count  

Автор: igorold 22.6.2006, 14:17
Аленка тебе правильно написала ......
 что значит не катит ... либо ты неправильно переписал , либо ты не можешь объяснить чего тебе хочется ...  

Автор: djkostya 22.6.2006, 14:30
Для каждого дня мне надо подсчитать сколько было запросов
То есь в базу пишиться каждый час и нужно всё это дело вывести в формате  | дата | колличество результатов | 

Автор: igorold 22.6.2006, 14:47
ну вот тебе примеры .... у меня MySQL 
здесь подсчитано количество событий за день
Код

select DATE_FORMAT(CreationTime,'%Y%m%d'), DATE_FORMAT(CreationTime,'%d') as day, count(i) from Events group by DATE_FORMAT(CreationTime,'%Y%m%d');

+------------------------------------+------+----------+
| DATE                                   | day  | count(i) |
+------------------------------------+------+----------+
| 20050830                           | 30   |        2 |
| 20050902                           | 02   |        3 |
| 20050912                           | 12   |        2 |
| 20050913                           | 13   |        5 |
| 20050914                           | 14   |        3 |
| 20050916                           | 16   |        2 |
| 20050917                           | 17   |        1 |
...................
а здесь подсчитана сумма i, которые записаны в этой дате
Код

select DATE_FORMAT(CreationTime,'%Y%m%d'), DATE_FORMAT(CreationTime,'%d') as day, SUM(i) from Events group by DATE_FORMAT(CreationTime,'%Y%m%d');

+------------------------------------+------+--------+
| DATE                                   | day  | SUM(i) |
+------------------------------------+------+--------+
| 20050830                           | 30   |    143 |
| 20050902                           | 02   |    223 |
| 20050912                           | 12   |    158 |
| 20050913                           | 13   |    398 |
| 20050914                           | 14   |    252 |
| 20050916                           | 16   |    179 |
| 20050917                           | 17   |     92 |
| 20050919                           | 19   |     94 |
................
все работает ...  для наглядности я тебе поле с датой вывел ...
группировку сделал по дате, потому что в разных месяцах могут быть одинаковые дни ...  

Автор: djkostya 22.6.2006, 14:57
ОООООООООООО Спасибо 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)