
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.03.2016, 18:21
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
Есть таблица cards У каждой записи(карты) есть целочисленный card_drop_rate, например: id|name|card_drop_rate ------------------------- 1|card1|15 2|card2|10 3|card3|24 В данном случае максимальный drop_rate является 15 + 10 + 24 = 49 Согласно моей задаче мне необходимо выбирать случайным образом число от 0 до в данном случае 49 и затем возвращать карту диапазон которой соотвествует этому числу. Пример: случайное число: 41 card1 range: 0 - 15(0 + 15) card2 range: 15 - 25(15 + 10) card3 range: 25 - 49(25+ 24) должна возвратиться карта card3 так как 41 принадлежит ее диапазону 25-49 Как лучше всего средствами PostgreSQL решить такую задачу и отобразить эту структуру в RDBMS ? Главным критерием для меня является производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 18:28
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
alexanoid1, если схематично, то как-то так: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 18:31
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
Щукина Анна, а, пардон, немного не то... тут же накопительный итог и lead/lag нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 18:38
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
Щукина Анна, да, в этом основная сложность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 18:42
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
alexanoid1, Сумму нарастающим итогом подсчитайте сначала в столбце через sum() over(), а потом уж выбирайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 18:59
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
westvovik, буду благодарен за пример. К сожалению раньше с Постгресом дела не имел и сейчас плаваю во всем ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 19:04
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
westvovik, пока что застрял с запросом след вида: Код: sql 1. Вот как num превратить в две колонки с min и max диапазона для данного рядка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 19:12
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. alexanoid1, Ну как то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.03.2016, 19:23
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
westvovik, Спасибо большое ! Это именно то что мне было нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2016, 13:46
|
|||
|---|---|---|---|
|
|||
Диапазон значений |
|||
|
#18+
alexanoid1Как лучше всего средствами PostgreSQL решить такую задачу Такую задачу лучше вообще не решать средствами PostgreSQL. От игрового сервера требуется быстродействие, а его так не достичь. Загружайте таблицу в ОЗУ и крутите данные там как хотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=1997323]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
206ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 552ms |

| 0 / 0 |
