|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Доброго времени суток! Кто сможет подсказать, как можно сделать, чтобы инфу, которая находится в одном столбце выводилась в 3х столбцах. Один параметр я могу вывести, а остальные уже не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 08:46 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
или же из этой таблицы(вложение), тут тоже информация в одном столбце, но уже можно вытаскивать через field_id. нужно как подобная команда как group_concat ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 19:05 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
на последней таблице не помешают индексы (FieldId, value_Text) можно только по FieldId по которым будет осуществлен поиск и индекс (Object_id, field_id) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 21:40 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Что то я понял, а что то нет. Вот основной кусок запроса, нашел еще таблицу где хранятся эти данные. вот таблица dynamic_field_value.field_id где 3 4 11 данные которые нужны но в столбце dynamic_field_value.value_text Можно ли то, что вы написали влепить в этот код? Код: plsql 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 23:01 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, Как то так Код: plsql 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.
Если нужно больше полей, добавляйте их коды в позицию (1), +конструкцию подобную (2), + вывод в запрос (3) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 17:42 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Спасибо Вам большое. Все работает, хочу теперь понять как это работает. Можно с вами как нибудь связаться (любой мессенджер)? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 14:20 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, спрашивайте здесь, может это тоже кому-то будет интересно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 16:45 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Добрый день! Есть таблица sessions, где различная инфа находится, я вывел фио и дату входа, но я думаю запрос написан неграмотный. Код: plsql 1. 2.
Решил попробовать по вашему коду сделать? но ничего не выходит. Так же есть вопросы по коду, смотреть вложение. Хочу сейчас результат опять развернуть на столбцы (ФИО, дата входа) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 16:06 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, У Вас опять типовая задача развернуть EAV таблицу по столбцам. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
конструкция Код: plsql 1.
предназначена что бы растащить значения атрибутов (value_text и data_value в прошлом и текущем примере) по своим столбцам при этом количество строк не уменьшится. т.е. будет одна строка где заполнен только один атрибут. Удалите max и секцию group by что бы посмотреть на промежуточный результат. в <Условие выбор атрибута> нужно указать условие отбора атрибута. В текущем примере тип атрибута хранится в поле data_key. Затем используя агрегатную функцию max (c тем же успехом можно использовать min), сжимаем строки сущности до одной на сущность (в данном примере сущность это идентификатор сессии - session_id) про join с lateral можно почитать тут , в кратце такой конструкцией мы говорим что эту часть запроса нужно выполнить для каждой строки вышестоящего запроса, используя его данные как дополнительный параметр подзапроса. По сути конструкция аналогична как если бы писался бы подзапрос в списке выборки , но он может возвращать несколько столбцов, которые потом уже используются. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 19:02 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Сейчас я более менее разобрался, спасибо вам. Но так же появилось несколько идей к этому запросу. Например выбор только тех сотрудников которых я укажу, делаю так, но выводит дату [null] Код: plsql 1.
Так же без дополнения кода выводятся строки [null], есть возможность убрать их? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:30 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, так же хотел время сделать по такому формату, но тоже не получилось to_char( , 'hh24 час. mi мин.') ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:58 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, Предупреждение от модератора - скриншоты и картинки вместо текстов запросов и ожидаемых результатов - КРАЙНЕ не приветствуются. Это неуважение к тем кто вам пробует помочь (вы вынуждаете все ваши запросы заново набирать вместо того чтобы скопировать и поменять в паре мест). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 14:15 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, для того что бы это корректно работало сначала нужно найти сессии и их уже использовать как условие поиска Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Если же нужен поиск по нескольким полям, то с точки производительности подобная структура не позволит это сделать эффективно. Изучите операции объединения результатов intersect вместо and, except - not, union - or. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
но этот вариант очень плох из-за преобразования текста в дату из за чего не возможно настроить индексы. Если других вариантов получить дату нет, то может помочь такой вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
что бы это работало более менее шустро должны быть индексы sessions(data_key, data_value) и sessions(session_id, data_key) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 21:33 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Спасибо вам еще раз! Достаточно было первого кода, попробовал в другие тоже работают, но когда пытаюсь поменять вид timestamp на Код: plsql 1.
он выдает ошибку, то что время идет так Код: plsql 1.
Можете посмотреть кусок кода, который ниже и посоветовать как его можно сократить. Суть в том, что мы используем helpdesk с бд postgres и я решил создать таблицу для подсчета выполненных заявок и баллов сотрудников. Знаю что sql не предназначен для арифметический действий поэтому как смог разобраться так и написал код (потому что я никогда не изучал sql). есть сервисы у нас, просчитываю по сервису выполненные заявки потом умножаю "вес", на одного сотрудника идет 169 строк дальше другой сотрудник через Код: plsql 1.
. Раньше делал через временную таблицу, но надо было выводить на монитор через grafana чтобы в реальном времени можно было посмотреть как идут дела, за день, месяц и за все время По сути код идентичен меняется только Код: plsql 1.
Во вложение прикреплю скрин результата Код: plsql 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 11:18 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Когда чуть разобрался как работает gruop by написал такие запросы, но не смог объединить в один запрос. А когда вставляю по частям в платформу grafana, он как то их объединяет смотреть вложение Осталось как то добавить веса к каждому сервису, а каждый сервис имеет свое значение и как то объединить в один запрос. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 11:34 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin Swa111, Когда чуть разобрался как работает gruop by написал такие запросы, но не смог объединить в один запрос. А когда вставляю по частям в платформу grafana, он как то их объединяет смотреть вложение Осталось как то добавить веса к каждому сервису, а каждый сервис имеет свое значение и как то объединить в один запрос. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
сделай табл.Агентов и всё сразу станет в разы проще типа user_iduser_name24Агент082Агент1 и общий запрос по всем Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 00:02 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin Swa111, Спасибо вам еще раз! Достаточно было первого кода, попробовал в другие тоже работают, но когда пытаюсь поменять вид timestamp на Код: plsql 1.
он выдает ошибку, то что время идет так Код: plsql 1.
Можете посмотреть кусок кода, который ниже и посоветовать как его можно сократить. Суть в том, что мы используем helpdesk с бд postgres и я решил создать таблицу для подсчета выполненных заявок и баллов сотрудников. Знаю что sql не предназначен для арифметический действий поэтому как смог разобраться так и написал код (потому что я никогда не изучал sql). есть сервисы у нас, просчитываю по сервису выполненные заявки потом умножаю "вес", на одного сотрудника идет 169 строк дальше другой сотрудник через Код: plsql 1.
. Раньше делал через временную таблицу, но надо было выводить на монитор через grafana чтобы в реальном времени можно было посмотреть как идут дела, за день, месяц и за все время По сути код идентичен меняется только Код: plsql 1.
Во вложение прикреплю скрин результата Код: plsql 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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169.
тут тоже "нехватка" таблицы (с зарплаты у тебя высчитывают чтоле за каждую новую таблицу, что ты так "извращаешься ? :) ") весь этот й.стыд в виде вложенных запросов легко убирается джойном на таб.сервисов service_idservice_name + судя по итоговому селекту, там под каждый сервис какие-то веса/коэф. задаются, то service_idservice_namek1k2... и в итоге будут суммироваться эти k ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 00:13 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
court, Спасибо вам за потраченное время, но я ничего не понял что вы написали по последнему сообщению. Мб из-за того что я вообще не читал литературу по sql и много чего не знаю особенно основ. все свои запросы я писал из примеров и только хватило мозгов как сейчас выглядит ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 18:08 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin court, Спасибо вам за потраченное время, но я ничего не понял что вы написали по последнему сообщению. Мб из-за того что я вообще не читал литературу по sql и много чего не знаю особенно основ. все свои запросы я писал из примеров и только хватило мозгов как сейчас выглядит попробую объяснить создаёте таб.services service_idservice_namek1k22пвд614почта3.515пси416кадры117кадры_перевод71............67смена_книги2.51 и тогда весь запрос (правда без учета block, today, month, alll про которые выше было, и определение которых, имхо, стоит оформить в виде функции, с параметром user_id, и до-cross join-ить к результату ниже) будет таким Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 21:31 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, Эти программные примеры мне смотреть было скучно. Но вообще для такой цели (превращения строк в колонки) в PostgreSQL удобно использовать функцию crosstab(), входящую в расширение tablefunc. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 18:23 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Извините что опять обращаюсь к вам. Написал запрос с объединением таблиц и вывел(скрин), а как сделать чтобы выводился список отделений/филиалов по строкам, а в столбцах были очереди, а в ячейках количество count - не знаю Очередь и отделения в разных таблицах, связь идет по id и object_id ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 15:04 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
DeLipFin, возможно Вам поможет расширение crosstab, сам его не использовал так что ни чего не могу сказать. для получения сводной таблицы для подсчет числа пар можно использовать такой подход. но значения столбцов (1,2,3 в данном пример) должно быть заранее известно или как минимум их количество не должно меняться Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 21:02 |
|
Вывод 3 строк с одного столбца, в 3 столбца
|
|||
---|---|---|---|
#18+
Swa111, Доброго времени суток! Есть возможность доработать код доп. условиями, который вы помогли сделать? Ниже сам запрос основной. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Нужно добавить условия для второго столбца такие, мб еще есть вариант. Но есть проблема того, что для условия нужно по столбцу data_key в строке 'UserLastRequest' смотреть столбец data_value где уже хранится текст в unix time stamp. Код: plsql 1. 2. 3. 4. 5.
Надо еще как то unix time stamp переводить в условие, знаю только как так переводить Код: plsql 1.
У меня не большие познания в запросах, но я тут даже представить не могу как можно сравнить условия через case, когда второй столбец уже по условию выводится, да еще unixtimestamp нужно как преобразовать в timestamp для условия и тут вообще становится не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 07:50 |
|
|
start [/forum/topic.php?fid=53&fpage=23&tid=1994495]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
157ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 275ms |
0 / 0 |