
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.09.2015, 18:37
|
|||
|---|---|---|---|
|
|||
Запрос! |
|||
|
#18+
Привет Всем! У меня такая ситуация, хотя можно её решить др способом, но слишком уж интересно стало. Есть таблица клиентов и их платежи, таблица платежей. Задача, получить одним запросом всех клиентов (id,fio,dr ....) + последний платеж (pay_date, pay_sum). В db2 это можно было сделать так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Но в postgresql так не получается! Как можно это сделать!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2015, 18:38
|
|||
|---|---|---|---|
|
|||
Запрос! |
|||
|
#18+
Вот тема в которой это решилось! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2015, 18:45
|
|||
|---|---|---|---|
Запрос! |
|||
|
#18+
Николаха, Курить LIMIT вместо FETCH ... LATERAL вместо table() и взять LEFT JOIN LATERAL () ON TRUE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2015, 19:11
|
|||
|---|---|---|---|
Запрос! |
|||
|
#18+
Николаха, Код: sql 1. 2. 3. 4. 5. Конструкция `DISTINCT ON` специфична для Postgres'а и требует ORDER BY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2015, 19:37
|
|||
|---|---|---|---|
|
|||
Запрос! |
|||
|
#18+
qwwq, Еееееее..... Спасибо!!! ))))))))))) А что такое ON TRUE !? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2015, 19:42
|
|||
|---|---|---|---|
|
|||
Запрос! |
|||
|
#18+
vyegorov, Тоже вариант! )))) А какой запрос будет менее ресурсо затратным для сервера, если кол-во записей в таблице клиентов перевалит за 50 000, а таблица платежей, при условии что база ведется с начала тек года, 50 000*12 мес !? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.09.2015, 20:15
|
|||
|---|---|---|---|
Запрос! |
|||
|
#18+
Николахаvyegorov, Тоже вариант! )))) А какой запрос будет менее ресурсо затратным для сервера, если кол-во записей в таблице клиентов перевалит за 50 000, а таблица платежей, при условии что база ведется с начала тек года, 50 000*12 мес !? эти объёмы можно сгенерировать руками за 5 минут на тестовом сервере заодно и выкурить explayn analyze не забыть об индексах -- без них -- всё несколько иначе (без индексов выиграет скорее всего distinct on или вообще какая-нть аналитика) ON -- это ON сабкляуза кляузы join left там для неплательщиков по секрету скажу, что будь distinct on в планере реализован по человечьи -- он не отличался бы (в случае большого числа правильно проиндексированных платежей) планом от lateral . но оптимайзер пж тут пока не запинали (и вообще отсутствие миллионов индусов не на пользу планеру), зато синтаксис позволяет это все руками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1997784]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 433ms |

| 0 / 0 |
