Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
13.06.2017, 23:03
|
|||
|---|---|---|---|
|
|||
Помогите написать два непростых запроса |
|||
|
#18+
Подскажите пожалуйста, как организовать два запроса: Имеем исходную таблицу: namepricequantitytimestampgoods11.07142017-06-13 18:29:01.15goods11.54112017-06-13 18:29:11.21goods12.0272017-06-13 18:29:32.303goods12.562017-06-13 18:29:49.62goods21.01122017-06-13 18:29:14.3goods21.0722017-06-13 18:29:32.44goods21.0592017-06-13 18:29:54.112 1. Выбрать строки по времени, от начала до конца прошлой минуты, и сгруппировать их в одну. мысли пока такие.. но непонятно как группировать, в GROUP BY нельзя ведь дату? Код: sql 1. 2. Есть мысль сделать доп поле (UNIX_TIMESTAMP(DATE_FORMAT(timestamp,'%Y-%m-%d %H:%i'))), и группировать уже по нему. в итоге нужно получить: nameavg(price)sum(quantity)timestampgoods11.7825382017-06-13 18:29goods21.0433232017-06-13 18:29 2. Тоже в группировке записей поминутно, но нужно получить значения из первой и последней строки выборки. Нужно получить из неё строки: (open-цена на начало периода, close - на конец) nameopenclosetimestampgoods11.072.52017-06-13 18:29goods21.011.052017-06-13 18:29 это вообще ума не приложу как, кроме внешних скриптов на php. Должна же быть возможность на sql? Подскажите как это сделать в принципе, и как сделать быстрее? т.к полей 15, а строк в обработке порядка 100к.. спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.06.2017, 23:19
|
|||
|---|---|---|---|
|
|||
Помогите написать два непростых запроса |
|||
|
#18+
Пока вариантов немного. Основные: 1.Доп поле UNIX_TIMESTAMP (описано выше) делать придется скорее всего так и так, для индекса и упрощения группировки. 2. С группировкой по UNIX_TIMESTAMP придется при сворачивании строк писать ещё флаг в отдельное поле (например GROUP) и писать туда - была группировка или нет (0,1). При дальнейшей группировки увеличивать значение поля GROUP и отбирать с нулевым. Но зато отпадает необходимость в плясках по поводу "от начала до конца прошлой минуты"), так более правильно имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 01:27
|
|||
|---|---|---|---|
Помогите написать два непростых запроса |
|||
|
#18+
что нибудь типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 10:22
|
|||
|---|---|---|---|
|
|||
Помогите написать два непростых запроса |
|||
|
#18+
javajdbcчто нибудь типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. пишет: Col]umn 'name' in field list is ambiguous. Если ставлю : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. то результат нулевой. Что не так?) таблица как в примере выше: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 12:16
|
|||
|---|---|---|---|
Помогите написать два непростых запроса |
|||
|
#18+
CoiDataпишет: Column 'name' in field list is ambiguous. Добавьте алиасы таблиц ВСЕМ полям: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 13:08
|
|||
|---|---|---|---|
|
|||
Помогите написать два непростых запроса |
|||
|
#18+
результат нулевой, пробовал как сам, так копировал ваш запрос как есть. чего-то ещё не хватает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 13:32
|
|||
|---|---|---|---|
Помогите написать два непростых запроса |
|||
|
#18+
CoiDataчего-то ещё не хватает? Да, в подзапросе t1 нехватает группировки по t0.name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 13:39
|
|||
|---|---|---|---|
|
|||
Помогите написать два непростых запроса |
|||
|
#18+
AkinaCoiDataчего-то ещё не хватает? Да, в подзапросе t1 нехватает группировки по t0.name Спасибо, дошло :) работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.06.2017, 14:53
|
|||
|---|---|---|---|
|
|||
Помогите написать два непростых запроса |
|||
|
#18+
Теперь другой не менее интересный вопрос, а как группировать не по минуте а по пять? по 15, по 30? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1830617]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 135ms |

| 0 / 0 |
