|
|
|
Диапазон значений
|
|||
|---|---|---|---|
|
#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:21 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
alexanoid1, если схематично, то как-то так: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 18:28 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, а, пардон, немного не то... тут же накопительный итог и lead/lag нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 18:31 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, да, в этом основная сложность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 18:38 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
alexanoid1, Сумму нарастающим итогом подсчитайте сначала в столбце через sum() over(), а потом уж выбирайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 18:42 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
westvovik, буду благодарен за пример. К сожалению раньше с Постгресом дела не имел и сейчас плаваю во всем ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 18:59 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
westvovik, пока что застрял с запросом след вида: Код: sql 1. Вот как num превратить в две колонки с min и max диапазона для данного рядка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 19:04 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. alexanoid1, Ну как то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 19:12 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
westvovik, Спасибо большое ! Это именно то что мне было нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2016, 19:23 |
|
||
|
Диапазон значений
|
|||
|---|---|---|---|
|
#18+
alexanoid1Как лучше всего средствами PostgreSQL решить такую задачу Такую задачу лучше вообще не решать средствами PostgreSQL. От игрового сервера требуется быстродействие, а его так не достичь. Загружайте таблицу в ОЗУ и крутите данные там как хотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2016, 13:46 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=94&tid=1997323]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 367ms |

| 0 / 0 |
