Strannik
12.08.2013 - 14:01
Добрый день.
Необходимо выбрать данные из юазы данных по дня в таблицу вида:

Подскажите пожалуйста как правильно вывести, а то как то неохота делать 31 запрос к бд по каждому месяцу, а других вариантов пока не вижу...
Структура
базы:
CREATE TABLE [dbo].[Statistic_banners](
[id] [int] IDENTITY(1,1) NOT NULL,
[user_id] [varchar](50) NULL,
[banner_idn] [varchar](50) NULL,
[banner_page] [varchar](150) NULL,
[action] [varchar](50) NULL,
[datetime] [datetime] NULL,
[server_referer] [varchar](150) NULL,
[ip] [varchar](50) NULL,
[browser] [varchar](500) NULL,
[id_firm] [varchar](50) NULL
) ON [PRIMARY]
Структуру таблиц БД в студию ))
Strannik
12.08.2013 - 14:23
добавил в вопрос
Valick
12.08.2013 - 14:38
вторая строка в таблице это у вас количество или сумма чего-то за день?
примерно так должно быть, если я правильно понял вопрос (хотя если честно достаточно мутно описано)
SELECT DATE(`datetime`), COUNT(*) FROM dbo.ExPRoG_Statistic_banners GROUP BY DATE(`datetime`)
SELECT DATE(`datetime`), SUM(`поле`) FROM dbo.ExPRoG_Statistic_banners GROUP BY DATE(`datetime`)
_____________
Стимулятор ~yoomoney - 41001303250491
T1grOK
12.08.2013 - 14:38
Можно сделать вспомогательную таблицу с датами. Потом JOIN-ить. Это в том случае, если нужен каждый день и возможно отсутствие записей на дату.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Valick
12.08.2013 - 14:42
Цитата |
Это в том случае, если нужен каждый день и возможно отсутствие записей на дату. |
не обязательно, пропущенные даты можно при выводе вставить
а вот если надо найти три максимума, то можно и JOIN сюда организовать
_____________
Стимулятор ~yoomoney - 41001303250491
Третья строка это id банера что-ли, а datetime это дата когда банер показывать? Типо медиа-плана? Как решение в лоб:
SELECT `id`, `datetime` FROM `ExPRoG_Statistic_banners`
А потом уже на стороне PHP формировать многомерный массив, где ключи будут - номер месяца и дни, а значениями - id.
Вообще вопрос сформулирован не совсем ясно, если распишете более подробно, будет больше шанс получить верное решение ))
Игорь_Vasinsky
12.08.2013 - 15:10
Rand
рациональний эту логику строить на стороне БД, там где и данные.
в php тупо вернуть готовый массив
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
12.08.2013 - 15:15
Rand, судя по присутствию Statistic в название таблицы, это уже случившиеся показы баннеров. Хотя в наше время, как показала практика, ни в чем нельзя быть уверенным
_____________
Стимулятор ~yoomoney - 41001303250491
bestxp
12.08.2013 - 15:29
extract(day from datetime) as day,
extract(month from datetime) as month
если нужны дни, а дальше группируй и складывай, доработать можно и легко уже потом
Valick
12.08.2013 - 15:35
bestxp, почему extract(day from datetime) as day, а не просто DAY(datetime) day ?
_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
12.08.2013 - 15:39
это tsql ? есть и DATEPART
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
bestxp
12.08.2013 - 15:55
Цитата (Valick @ 12.08.2013 - 15:35) |
bestxp, почему extract(day from datetime) as day, а не просто DAY(datetime) day ? |
у него по названию таблицы указаны схема и таблица, что похоже на pgSql . а там нету такого как day , так как не соотвествует стандартам
ps имхо mysql самая убогая бд
Valick
12.08.2013 - 15:58
Цитата |
а там нету такого как day |
bestxp, понял, спасибо.
Цитата |
ps имхо mysql самая убогая бд |
ну на вкус и цвет фломастеры разные
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (Valick @ 12.08.2013 - 17:15) |
Rand, судя по присутствию Statistic в название таблицы, это уже случившиеся показы баннеров. Хотя в наше время, как показала практика, ни в чем нельзя быть уверенным |
Точно, если это результат каунта, тогда всё логично )) Сразу не понял.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.