Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / (MySQL) заполнить нулями пустые значения / 25 сообщений из 25, страница 1 из 1
29.10.2014, 08:30:41
    #38790133
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
Здрасте! Есть статистика вида

id_view | mediumint
date_view | datetime

как вывести статистику за последние 5 дней, при условии, что есть дни, где записей нет, их нужно заполнить нулями, т.е.

20
11
0
0
1
...
Рейтинг: 0 / 0
29.10.2014, 08:38:41
    #38790141
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
однобитный,

создать таблицу со всеми датами и использовать её в запросе.
...
Рейтинг: 0 / 0
29.10.2014, 11:22:57
    #38790401
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
думаю сделать вывод от 1 до 30
потом через DATE_SUB и NOW() получать даты, потом join-ом объединить результат

но вот как в MySQL-е можно вывести в запросе диапазон от 0 до 30, например
...
Рейтинг: 0 / 0
29.10.2014, 11:27:16
    #38790410
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
однобитныйза последние 5 дней5 дней можно и руками перечислить...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
(SELECT 1 f
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
UNION ALL
SELECT 5) t
...
Рейтинг: 0 / 0
29.10.2014, 11:49:21
    #38790462
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
тоже начал смотреть на UNION, но
авторSELECT * FROM (SELECT 1 f UNION ALL SELECT 2)
ругается
...
Рейтинг: 0 / 0
29.10.2014, 11:50:56
    #38790467
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
однобитныйругаетсяВо-первых, всегда показывайте текст ошибки.
Во-вторых, обратите внимание на буковку t в моем варианте.
...
Рейтинг: 0 / 0
29.10.2014, 11:54:05
    #38790473
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
ух ты
авторselect n as n123 from (select 1 as n union all select 2) as n
...
Рейтинг: 0 / 0
29.10.2014, 11:58:10
    #38790483
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
истина где-то рядом (c)
select DATE_SUB(CURDATE(), INTERVAL n DAY) as d from (
select 1 as n
union select 2
union select 3
union select 4
union select 5
union select 6
union select 7
union select 8
union select 9
union select 10
union select 11
union select 12
union select 13
union select 14
union select 15
union select 16
union select 17
union select 18
union select 19
union select 20
union select 21
union select 22
union select 23
union select 24
union select 25
union select 26
union select 27
union select 28
union select 29
union select 30
) as n
...
Рейтинг: 0 / 0
29.10.2014, 13:02:53
    #38790597
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
а зачем дни которых нету?

ну это тоже самое что в банк позвонить и сказать...сделайте мне выписку по дням - сколько всумме снято с карточки, только те дни что нету дорисуйте снулями--ответ очевиден - возьми и дорисуй.

зачем базу нагружать то что клиент может сделать?

идея субд какбы обработка данных а не рисование нулей

ЗЫ
для простоты понимания - максимализируем ситуацию - отчот по дням за 5 лет, притом что данных есть за один день сентября первого года и один день третего года.

тоже будем субд просить нарисовать пейзаж?!
...
Рейтинг: 0 / 0
29.10.2014, 13:27:11
    #38790634
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453зачем базу нагружать то что клиент может сделать?Клиент может далеко не всегда. Или может, но с помощью значительно более сложного кода, нежели несколько строчек в SQL.
...
Рейтинг: 0 / 0
29.10.2014, 14:59:21
    #38790781
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453зачем базу нагружать то что клиент может сделать?
Во-первых, централизация бизнес-логики, включая сопровождение.
Во-вторых, СУБД предназначена для такой работы. И, между прочим, лучше, чем клиент. Отдача нулей - один из вариантов результата обработки данных, ничем не хуже прочих.
...
Рейтинг: 0 / 0
29.10.2014, 15:03:20
    #38790786
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
miksoftalex564657498765453зачем базу нагружать то что клиент может сделать?Клиент может далеко не всегда. Или может, но с помощью значительно более сложного кода, нежели несколько строчек в SQL.

мдя...печаль.

так что ж вы советуете тогда селект юнионы, вместо того чтоб сделать себе табличку из двух полей, тип и значение, и загнать туда числа скажем от 1 до 10 тысяч с шагом 0.25....

для чисел вида хх.25(75) ставим тип четверть, для половинных х.5 - тип половина
для целых - целые для чотных чотные...и когда возникает очередная художетсвеная постановка, использовать её вкачестве генератора последовательности...

можно ещо дальше пойти, на примере логарифмической линейки сделать таблицу которая ещо более гибко будет генерировать последовательность :)
...
Рейтинг: 0 / 0
29.10.2014, 16:16:25
    #38790934
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
дfвно завел за правило держать в базах таблицу с одним полем id 1,2,3, --1000 (или больше)
никому не мешает
SELECT id FROM t1000 WHERE id<6
меньше текста
...
Рейтинг: 0 / 0
29.10.2014, 17:58:33
    #38791084
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
Alex_Ustinovдfвно завел за правило держать в базах таблицу с одним полем id 1,2,3, --1000 (или больше)
никому не мешает
SELECT id FROM t1000 WHERE id<6
меньше текста
Достаточно таблицы digits с записями от 0 до 9. Потребуется 1000 - декарт трёх копий, и всё, а арифметика там достаточно быстрая.
Код: sql
1.
2.
select t1.id+t2.id*10+t3.id*100
from digits t1, digits t2, digits t3
...
Рейтинг: 0 / 0
29.10.2014, 18:27:12
    #38791113
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
Akinaalex564657498765453зачем базу нагружать то что клиент может сделать?
Во-первых, централизация бизнес-логики, включая сопровождение.
Во-вторых, СУБД предназначена для такой работы. И, между прочим, лучше, чем клиент. Отдача нулей - один из вариантов результата обработки данных, ничем не хуже прочих.


эээ мысль в сторону ушла - речь идёт не о выдаче нулевых результатов, речь идёт о генерации последовательности. и наверно не дивно, что в скл нет для этого конструкции
...
Рейтинг: 0 / 0
29.10.2014, 18:31:36
    #38791117
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453не дивно, что в скл нет для этого конструкцииПоправка - в MySQL для этого нет конструкции. В некоторых других СУБД есть варианты.
...
Рейтинг: 0 / 0
29.10.2014, 20:02:51
    #38791172
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453речь идёт о генерации последовательности. и наверно не дивно, что в скл нет для этого конструкцииНазначение SQL-сервера - обработка и выдача данных, которые ЕСТЬ в базе данных. Генерация - это костыль на случай, когда данных НЕТ.
...
Рейтинг: 0 / 0
29.10.2014, 20:55:21
    #38791196
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
miksoftalex564657498765453не дивно, что в скл нет для этого конструкцииПоправка - в MySQL для этого нет конструкции. В некоторых других СУБД есть варианты.

Ну капец все невнимательные...

я пишу в скл нету...а не в мускл... у других субд ---это наверно имееться ввиду скл на костылях который? типо тскл ....
...
Рейтинг: 0 / 0
29.10.2014, 21:12:51
    #38791203
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453у других субд ---это наверно имееться ввиду скл на костылях который? типо тскл ....Нет, я не имел в виду процедурное расширение какой-либо СУБД.
...
Рейтинг: 0 / 0
30.10.2014, 04:55:56
    #38791305
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453так что ж вы советуете тогда селект юнионыПотому что это стандартное решение для примеров, которое написать гораздо быстрее, чем объяснять в каждой теме про "табличку из двух полей".
alex564657498765453для чисел вида хх.25(75) ставим тип четверть, для половинных х.5 - тип половина
для целых - целые для чотных чотные...и когда возникает очередная художетсвеная постановка, использовать её вкачестве генератора последовательности...Бегом учить математику. Сделать из таблицы целых таблицу четвертей - задача в одно действие, но с целыми изначально работа быстрее.
alex564657498765453у других субд ---это наверно имееться ввиду скл на костылях который? типо тскл ....Типо постгрес. Или оракл. Вообще костыльные базы, ага... И нет, это чистый скл.
...
Рейтинг: 0 / 0
30.10.2014, 08:56:26
    #38791387
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
tangliralex564657498765453так что ж вы советуете тогда селект юнионыПотому что это стандартное решение для примеров, которое написать гораздо быстрее, чем объяснять в каждой теме про "табличку из двух полей".
alex564657498765453для чисел вида хх.25(75) ставим тип четверть, для половинных х.5 - тип половина
для целых - целые для чотных чотные...и когда возникает очередная художетсвеная постановка, использовать её вкачестве генератора последовательности...Бегом учить математику. Сделать из таблицы целых таблицу четвертей - задача в одно действие, но с целыми изначально работа быстрее.
alex564657498765453у других субд ---это наверно имееться ввиду скл на костылях который? типо тскл ....Типо постгрес. Или оракл. Вообще костыльные базы, ага... И нет, это чистый скл.

оракал - это не язык, а субд, как и мс скл. а тскл и пскл и скл это языки!!!

и да - бегом учить микропроцессорную технику - сделать из целых чисел четверти - далеко не элементарное действие в сравнении с готовыми четвертями для сравнения!
...
Рейтинг: 0 / 0
30.10.2014, 09:56:24
    #38791463
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453оракал - это не язык, а субдВНЕЗАПНО мопедкосяк не мой:
alex564657498765453у других субд

alex564657498765453бегом учить микропроцессорную технику - сделать из целых чисел четверти - далеко не элементарное действиебегом учить, что быстрее - дисковые операции или процессорные
...
Рейтинг: 0 / 0
30.10.2014, 10:07:49
    #38791484
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
alex564657498765453и да - бегом учить микропроцессорную технику - сделать из целых чисел четверти - далеко не элементарное действие в сравнении с готовыми четвертями для сравнения!Элементарное (и даже ничтожное) по сравнению со всеми остальными операциями в процессе выполнения запроса.
И, пожалуйста, не надо никого никуда посылать. Это, как минимум, невежливо.
alex564657498765453оракал - это не язык, а субд, как и мс скл. а тскл и пскл и скл это языки!!!Абстрактно-теоретический SQL никого не интересует. И имелось в виду не просто СУБД Oracle, а расширение языка SQL, реализованное в СУБД Oracle.

Хотя, возможно, и в стандарте SQL есть что-то подходящее. Бегло мне не удалось найти его в полном виде.
...
Рейтинг: 0 / 0
30.10.2014, 12:17:21
    #38791536
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
miksoftХотя, возможно, и в стандарте SQL есть что-то подходящее. Бегло мне не удалось найти его в полном виде.ЕМНИП бесплатно его и не найти. Ну разве что какие-то части.
Хотя вот в википедии пишут http://en.wikipedia.org/wiki/SQL:2003#Summary The SQL:2003 standard makes minor modifications to all parts of SQL:1999 (also known as SQL3), and officially introduces a few new features such as:[1]
XML-related features (SQL/XML)
Window functions
the sequence generator, which allows standardized sequences
...
Рейтинг: 0 / 0
30.10.2014, 12:21:08
    #38791543
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) заполнить нулями пустые значения
однобитныйкак вывести статистику за последние 5 дней, при условии, что есть дни, где записей нет, их нужно заполнить нулями, т.е.


coalesce()
isnull()
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / (MySQL) заполнить нулями пустые значения / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]