powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получить данные на одно время суток
19 сообщений из 19, страница 1 из 1
Получить данные на одно время суток
    #39380672
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Есть таблица для сохранения данных мониторинга, данные записываются раз в час. Мне нужно вывести данные на конец суток, не могу придумать как это сделать. Сама таблица:
CREATE TABLE DATABASE_LOG (
ID INTEGER NOT NULL,
COL1 INTEGER,
TIME_WRITE TIMESTAMP
);
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380675
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarМне нужно вывести данные на конец суток, не могу придумать как это сделать.
Пример данных хоть бы привёл.
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380680
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

что значит вывести данные на конец суток? За 24 часа каких-то суток что ли?

Код: sql
1.
2.
3.
select *
from DATABASE_LOG
where TIME_WRITE between '08.01.2017' AND '08.01.2017 23:59:59.999'



или даже

Код: sql
1.
2.
3.
select *
from DATABASE_LOG
where TIME_WRITE >= '08.01.2017' AND TIME_WRITE < '09.01.2017'
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380682
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

А в чём сложность-то? Общее направление - типа того:

Код: sql
1.
2.
3.
4.
5.
select * from DATABASE_LOG d
  join (select max(time_write) tm
          from DATABASE_LOG
          group by cast(time_write as date)) q
  on d.time_write = q.time_write



В зависимости от диалекта разный только способ обрезания до "только даты".
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380684
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380692
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

у него 1 диалект
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380695
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ну а
Симонов Денисчто значит вывести данные на конец суток? За 24 часа каких-то суток что ли?
?
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380697
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

И в чём проблема?
group by cast(time_write as varchar(11)) если не ошибаюсь.
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380701
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисWildSery,

у него 1 диалект

Нет,конкретно в этом случае - третий. Это уже моя поделка, а не сопровождение чужого.
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380707
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

если WildSerg правильно понял что ты хочешь то для 1 диалекта это можно сделать так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
WITH times AS (
  SELECT MAX(time_write) tm
  FROM DATABASE_LOG
  GROUP BY CAST(EXTRACT(YEAR FROM time_write) || '-' || 
                EXTRACT(MONTH FROM time_write) || '-' || 
                EXTRACT(DAY FROM time_write) AS DATE)
)
SELECT * 
FROM times
  LEFT JOIN DATABASE_LOG d
    ON d.time_write = times.time_write
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380710
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ну тогда тебе вариант WildSery подойдёт
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380711
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanGallemar,

ну а
Симонов Денисчто значит вывести данные на конец суток? За 24 часа каких-то суток что ли?
?

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

Попробовал пример, не получается и не могу понять почему:

select * from DATABASE_LOG d
join (select max(time_write) tm
from DATABASE_LOG
group by cast(time_write as date)) q
on d.time_write = q.time_write

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
Q.TIME_WRITE.
At line 5, column 23.
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380712
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

Это я на автомате написал.
Внутри же алиас поля не так называется.
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380713
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ну ты совсем обленился... ошибку элементарную найти не можешь. Смотри как алиас поля у тебя в производной таблице зовётся
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380729
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, правда не могу найти ошибку
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380735
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemarправда не могу найти ошибку
Шутишь? Ты альяс на group by навесил. Так не бывает. Альясы на таблицы или столбцы вешаются.
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380743
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarПопробовал пример, не получается и не могу понять почему:

select * from DATABASE_LOG d
join (select max(time_write) tm
from DATABASE_LOG
group by cast(time_write as date)) q
on d.time_write = q. time_write
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380753
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, спасибо.
Первый рабочий день и уже хочется кому-нибудь по голове настучать....
...
Рейтинг: 0 / 0
Получить данные на одно время суток
    #39380812
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarСкажу более точно - мне нужно вывести в табличном виде данные за каждый день, но не все, а
только последнее значение, оно снимается в 23 часа.

"Последнее значение" и "значение в 23 часа" это как бы немного разные вещи. Запрос на
второе гораздо проще.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получить данные на одно время суток
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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