|
|
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Ребят, помогите решить задачу, пожалуйста Дано две таблицы Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Нужно вывести статистику, а конкретно должно получиться id | Дата | Комиссия | Выплата 70 | November,2014 | 0 | 50 70 | December,2014 | 32 | 100 71 | December,2014 | 15 | 0 Чет у меня ничего не получается((( Вот что пробовал: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Выводит почти то что нужно, но только sumPayments вообще непонятная для меня цифра получается и не выводит строки, если нет данных совпадающих по дате в таблице tbl_result ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 17:22:32 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Сгруппируйте помесячно-поюзерно и получите суммы в подзапросах, и уже их связывайте. Поскольку нужен FULL OUTER JOIN, я бы рекомендовал использовать не подзапросы, а вьювы. Оптимизатор может и не понять, что два разных подзапроса на самом деле один подзапрос в двух экземплярах. Хотя попробуйте, если поймёт - оставьте подзапросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 17:39:12 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Akina, да full join не поддерживает, а с представлениями никогда не работал, сейчас читаю, пытаюсь понять. Не подскажите как сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 18:47:02 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 18:51:35 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Да ссылку то я нашел)) Не могу связать все равно таблицы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 19:06:48 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#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. 28. 29. 30. 31. только вьюха не создается если добавить create view statistic as((( Кажется мне что это не очень оптимальное решение и конечно вьюху нужно, чтоб фильтровать удобно было. Ребят, подскажите, ПОЖАЛУЙСТА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 19:58:23 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Прочитайте ещё раз мой совет. Но 1) весь 2) внимательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 20:55:08 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю, создать две вьюхи, по сгруппированным данным каждой из таблиц, а потом делать запрос объединением вьюх? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 21:06:37 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Вот! А Вы тем не менее всё опять в один запрос. Да, рассмотрите ещё вот какой подход. В подзапросе получите все пары юзер-дата из обеих таблиц суммарно. И к тому, что получится, привязывайте исходные таблицы. В этом случае полного связывания не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 21:10:38 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
AkinaВот! А Вы тем не менее всё опять в один запрос. Да, рассмотрите ещё вот какой подход. В подзапросе получите все пары юзер-дата из обеих таблиц суммарно. И к тому, что получится, привязывайте исходные таблицы. В этом случае полного связывания не нужно. да я пока еще и с вьюхами не переварил((( Код: 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. Так? Или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 21:31:54 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Класс! Вы умудрились реализовать третий вариант, промежуточный между двумя мной предложенными. Только конечный запрос - по первому варианту, что неразумно. замените NULL на нули, и сделайте источником конечного запроса UNION ваших вьювов. А лефт джойны и дополнительные копии таблиц уже и не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 21:35:22 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Блин, а других вариантов нет вообще? Ну эти вьюхи группируются по месяцам, а если нужно по дням или за 3 месяца стату(((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2014, 22:09:40 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Евгений1000Блин, а других вариантов нет вообще? Ну эти вьюхи группируются по месяцам, а если нужно по дням или за 3 месяца стату(((( Учите data warehouse, datamart, multidimensional storage, BI... если что побесплатнее, то Pentaho, Mondrian, ПоплАтнее : SSAS, Cognos...там и Оракле Кстати, вот неплохой бесплатный индивидуальный продукт: http://www.microstrategy.com/us/free/desktop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 04:44:31 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
javajdbcЕвгений1000Блин, а других вариантов нет вообще? Ну эти вьюхи группируются по месяцам, а если нужно по дням или за 3 месяца стату(((( Учите data warehouse, datamart, multidimensional storage, BI... если что побесплатнее, то Pentaho, Mondrian, ПоплАтнее : SSAS, Cognos...там и Оракле Кстати, вот неплохой бесплатный индивидуальный продукт: http://www.microstrategy.com/us/free/desktop чесно говоря не понял зачем. Мне нужно решить конкретную задачу в MySQL - получить данные из двух таблиц с группировкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 05:14:10 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Евгений1000javajdbcпропущено... Учите data warehouse, datamart, multidimensional storage, BI... если что побесплатнее, то Pentaho, Mondrian, ПоплАтнее : SSAS, Cognos...там и Оракле Кстати, вот неплохой бесплатный индивидуальный продукт: http://www.microstrategy.com/us/free/desktop чесно говоря не понял зачем. Мне нужно решить конкретную задачу в MySQL - получить данные из двух таблиц с группировкой У вас есть велосипед и вы спрашиваете как перевезти два яшика яблок -- ок, варианты подсказали -- поставить одни на другой, или там подшипники приделать -- вы это сделаете. Но если вы спрашиваете: автора если нужно по дням или за 3 месяца стату(((( то без фургона вы конечно же сможете таскать на велике, но в какой-то момент заколебётесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 05:41:27 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
javajdbcто без фургона вы конечно же сможете таскать на велике, но в какой-то момент заколебётесь. Ни в коем случае не хочу вас обидеть, но все же считаю, что для начала нужно хорошо выучить SQL, чем активно и занимаюсь. В принципе, тред был "помогите найти решение текущей задачи", а не дайте совет, что мне поучить чтобы решать подобные задачи. Я конечно же могу отложить проект, забить на текущую проблему, начать изучать предложенные вами продукты, а там, через месяцок-другой, смотришь и необходимость в решении текущей проблемы вообще отпадет)) Пы.Сы. В принципе задача у меня уже имеет решение, причем 2-мя способами. Просто считаю решение пока не самое оптимальное. Пы.Пы.Сы. За совет, отдельное спасибо! Интересно будет поковырять в свободное время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 06:16:28 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Евгений1000, Добрый день. Можно скрипт написать по другому. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Если это на SQL делать. javajdbc прав, что надо учить OLAP кубы и прочее. Много чего интересного можно сделать и узнать. PS. Если делать такое на кубах, к примеру на Mondrian то урок www.biwed.ru/index.php/pentaho/50-praktika-obedinenija-virtual-cube . Реализуется через виртуальный куб. C уважением, biwed.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 13:47:18 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. Пока решил по последнему варианту, но на будущее советы учту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2014, 23:28:21 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Количество данных растет. Сложные запросы становятся накладными. Ребят, вот появилась мысль, а если создать событие, которое будет брать данные из таблиц и добавлять их в отдельную сводную, чтоб юзер уже напрямую тянул данные из готовой таблицы. Черт с ним, то что данные будут "запаздывать" на несколько минут - это не критично. Или это бред, который просто создаст лишнюю нагрузку? С одной стороны, для создания сводной таблицы, ее данные будут обновляться пусть раз в 10 минут, с другой - пользователь смотрит данные в среднем 3 раза в сутки, создавая нагрузку на базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 18:53:42 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Евгений1000а если создать событие, которое будет брать данные из таблиц и добавлять их в отдельную сводную, чтоб юзер уже напрямую тянул данные из готовой таблицы. Черт с ним, то что данные будут "запаздывать" на несколько минут - это не критично. Или это бред, который просто создаст лишнюю нагрузку?предагрегация - не бред, а здравая мысль, к которой рано или поздно приходят все :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:13:11 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
tanglir, т.е. именно таким способом который я описал? Я так понял, что вы уже делали подобную работу. А не сравнивали эффективность, если писать в сводную таблицу сразу? Пытаюсь время свое сэкономить))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 23:17:57 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Евгений1000А не сравнивали эффективность, если писать в сводную таблицу сразу?"Сразу", то есть не по расписанию, а триггером по изменению данных в исходной таблице? Смотрите сами - если нагрузка на диск сильно не возрастёт, то почему бы и нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2014, 06:33:06 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
tanglir, пока у меня не очень большая нагрузка в среднем до 10 записей в минуту (с проверкой на уникальность). Но она постоянно растет - текущая с 0 на начало месяца)) Спасибо за ответы. Буду пробовать варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2014, 11:17:03 |
|
||
|
Выборка строк с группировкой по дате
|
|||
|---|---|---|---|
|
#18+
Евгений100010 записей в минутуНу если база крутится не на калькуляторе, то можете триггер ставить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2014, 12:19:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38826754&tid=1833744]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
113ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 390ms |

| 0 / 0 |
