X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Подсчет данных
Wins
Wins
Topic Starter сообщение 3.10.2014, 14:49; Ответить: Wins
Сообщение #1


Здравствуйте!

В БД есть запись у записи дата, поле timestamp

Как сделать например подсчет за месяц по дням

2014-10-01 = 5 записей
2014-10-02 = 3 записей
2014-10-03 = 7 записей

и т.д.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 8.10.2014, 15:29; Ответить: Degradator
Сообщение #2


таблица forum_topics
поле формата timestamp - created

SELECT COUNT(*) AS count, DATE(FROM_UNIXTIME(created)) as date_condition FROM `forum_topics` GROUP BY date_condition ORDER BY date_condition;

Чтобы сделать подсчет за месяц, надо делать что-то такое
(но так не сработает)
WHERE MONTH(NOW()-DATE(FROM_UNIXTIME(created))) = 1

лень разбираться.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 8.10.2014, 22:54; Ответить: Arks
Сообщение #3


ну как-то так например... :goodpost:
CREATE DATABASE tmp;
USE tmp;
CREATE TABLE tbl (
id INT(11) NOT NULL AUTO_INCREMENT,
ts TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) ENGINE = INNODB;
INSERT INTO tbl (ts) VALUES
(CURRENT_TIMESTAMP()-INTERVAL 1 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 2 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 3 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 4 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 5 HOUR),
(CURRENT_TIMESTAMP()-INTERVAL 24 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 25 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 26 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 27 HOUR),
(CURRENT_TIMESTAMP()-INTERVAL 48 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 49 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 50 HOUR),
(CURRENT_TIMESTAMP()-INTERVAL 72 HOUR), (CURRENT_TIMESTAMP()-INTERVAL 73 HOUR),
(CURRENT_TIMESTAMP()-INTERVAL 96 HOUR);
SELECT * FROM tbl;
+----+---------------------+
| id | ts |
+----+---------------------+
| 1 | 2014-10-08 21:41:49 |
| 2 | 2014-10-08 20:41:49 |
| 3 | 2014-10-08 19:41:49 |
| 4 | 2014-10-08 18:41:49 |
| 5 | 2014-10-08 17:41:49 |
| 6 | 2014-10-07 22:41:49 |
| 7 | 2014-10-07 21:41:49 |
| 8 | 2014-10-07 20:41:49 |
| 9 | 2014-10-07 19:41:49 |
| 10 | 2014-10-06 22:41:49 |
| 11 | 2014-10-06 21:41:49 |
| 12 | 2014-10-06 20:41:49 |
| 13 | 2014-10-05 22:41:49 |
| 14 | 2014-10-05 21:41:49 |
| 15 | 2014-10-04 22:41:49 |
+----+---------------------+
ALTER TABLE tbl ADD INDEX (ts);
SHOW INDEXES IN tbl;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| tbl | 0 | PRIMARY | 1 | id | A | 2 | NULL | NULL | | BTREE | | |
| tbl | 1 | ts | 1 | ts | A | 15 | NULL | NULL | | BTREE | | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
SELECT DATE(ts) as date, COUNT(*) as cnt FROM tbl GROUP BY DATE(ts) WITH ROLLUP;
+------------+-----+
| date | cnt |
+------------+-----+
| 2014-10-04 | 1 |
| 2014-10-05 | 2 |
| 2014-10-06 | 3 |
| 2014-10-07 | 4 |
| 2014-10-08 | 5 |
| NULL | 15 |
+------------+-----+
SELECT DATE(ts) as date, COUNT(*) as cnt FROM tbl WHERE ts BETWEEN NOW()-INTERVAL 2 DAY AND NOW() GROUP BY DATE(ts) WITH ROLLUP;
+------------+-----+
| date | cnt |
+------------+-----+
| 2014-10-07 | 4 |
| 2014-10-08 | 5 |
| NULL | 9 |
+------------+-----+
DROP DATABASE tmp;
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 10.10.2014, 15:44; Ответить: Degradator
Сообщение #4


Arks, ты такой Arks...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
Wins
Topic Starter сообщение 11.10.2014, 2:16; Ответить: Wins
Сообщение #5


Ого Arks забацал, но я решил этот вопрос на php, и на нем сделал подсчет.

Через sql не получилось, а пример Arksa не будет у меня работать, потому что запрос через билдер нужно написать, а он многое из того что предложил Arks не поддерживает.

Разве что вместо билдера обычный sql использовать.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
14 yaroslav89 6628 13.3.2024, 23:16
автор: spoyer_ru
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3801 9.2.2024, 16:04
автор: baza0013
Открытая тема (нет новых ответов) Базы данных, различной тематики, выкладываем тут.
Делимся, обмениваемся, заказываем, парсим.
12 InfoObmen 15182 4.9.2022, 2:32
автор: Галецкая
Открытая тема (нет новых ответов) Сбор Данных Услуг И Специалистов Яндекс.Услуги
2 zkalinin 2351 26.5.2022, 17:10
автор: zkalinin
Открытая тема (нет новых ответов) Услуги парсинга данных: товаров, описаний, цен, отзывов. Короткие сроки.
0 Defaz_mw 967 9.1.2019, 2:00
автор: Defaz_mw


 



RSS Текстовая версия Сейчас: 29.3.2024, 3:12
Дизайн