Writerim
@Writerim
Заполнить позже...

Как вывести записи дубликаты но с разными данными?

У меня есть таблица

id | year | month | day | hour | value | id_parameter |


Нужно получить как то строки но чтобы дата в новой увеличивалась на один час.

Допустим есть данные.

| 2016 | 5 | 20 | 4 | 999 | 301 |
| 2016 | 5 | 20 | 4 | 888 | 300 |


Надо как то размножить и получить

| 2016 | 5 | 20 | 4 | 999 | 301 | -- исходная
| 2016 | 5 | 20 | 5 | 999 | 301 |
| 2016 | 5 | 20 | 6 | 999 | 301 |
| 2016 | 5 | 20 | 7 | 999 | 301 |
| 2016 | 5 | 20 | 4 | 888 | 300 | -- исходная
| 2016 | 5 | 20 | 5 | 888 | 300 |
| 2016 | 5 | 20 | 6 | 888 | 300 |
| 2016 | 5 | 20 | 7 | 888 | 300 |
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@retvizan
SELECT `year`, `month`, `day`, `hour` + a, `value`, id_parameter
FROM `таблица`,
(select 0 a union select 1 union select 2 union select 3) t order by 5 desc, 4;

в качестве опорной таблицы можно использовать заранее подготовленную таблицу или любую достаточно большую таблицу
SELECT `year`, `month`, `day`, `hour` + t.id -1, `value`, id_parameter
FROM `таблица`,
(select id from `таблица в которой есть id от 1 до 4` where id<5) t order by 5 desc, 4;

но как указали ранее, делать так не рационально
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
savostin
@savostin
Еще один программист
Я бы такие объемы дублирующихся данных из базы не гонял.
Имхо это проще решить на стороне клиента, запросившего данные, если это возможно по постановке задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы