我使用go和gorm编写了一个API,它在我们的数据库上运行计算并返回结果.
我只是IN在使用聚合时达到了条件的参数限制.示例查询:
SELECT SUM(total_amount) from Table where user_id in(...70k parameters) group by user_id
Run Code Online (Sandbox Code Playgroud)
我当前的一个边缘案例有> 65535个用户ID,所以我的Postgres客户端抛出一个错误:
Run Code Online (Sandbox Code Playgroud)got 66037 parameters but PostgreSQL only supports 65535 parameters
我不确定最好的办法是什么.一个将处理此边缘情况的大量参数,同时不影响我的典型用例.我是否对id进行分块并迭代多次查询将其存储在内存中,直到我拥有所需的所有数据?用ANY(VALUES)...
显然,从查询中我对Postgres的知识非常有限,所以任何帮助都会令人难以置信地受到赞赏.