|
PIVOT средствами MySQL
|
|||
---|---|---|---|
#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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71.
Тест/пример использования Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 10:31 |
|
PIVOT средствами MySQL
|
|||
---|---|---|---|
#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.
Пример использования . Само собой требуются валидные данные. В частности, пара (groupname, pivotname) должна быть уникальна. Если она неуникальна, и требуется некая агрегатная функция (скажем, суммирование), несложно на основании таблицы создать представление, приводящее данные к "нормальному" виду, и использовать его в качестве источника данных для процедуры. Таблица должна быть в текущей БД (указание имени БД не предусмотрено), но это легко добавить, если нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2021, 14:28 |
|
|
start [/forum/topic.php?fid=47&gotonew=1&tid=1828186]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 338ms |
total: | 608ms |
0 / 0 |