Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кривой запрос
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть задача: - Вычислить топ3 загрузок файла по месяцам. - Посчитать изменения в % к предыдущему месяцу для позиций из топ3. (если файл попал в топ3 загрузок первый раз, то изменение = пусто). Вот такой запрос, но похоже можно сделать гораздо элегантнее, помогите пж-та. Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2018, 23:00 |
|
||
|
Кривой запрос
|
|||
|---|---|---|---|
|
#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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. используйте cte для выделения составных частей запроса не надо джойнить @file раньше времени, сначала посчитайте агрегаты форматируйте числа и даты в клиентском приложении, а не в запросе: substring(CONVERT(varchar(10), cw.date, 23),1,7) dat фильтруйте данные чтобы использовались индексы, year(cw.date)=? and month(cw.date)=? вот с таким подходом индексы не используются. top без order by - ошибка, ответьте на вопрос какие top записи вам нужны форматируйте текст запроса, запрос это тоже программа, не надо из него делать кашу. в место комментов "текущий месяц" можно просто использовать алиасы cteCurMonth к примеру, т.е. пишите самодокументируемый код. не повторяйте по нескольку раз одно и тоже: к примеру substring(convert(varchar(10), cw.date, 23), 1, 8) И думаю более производительный вариант будет выглядеть так, но зависит от индексов на таблице @download Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2018, 06:00 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1688945]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
138ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 492ms |

| 0 / 0 |
