查询:
SELECT COUNT(*) as count_all,
posts.id as post_id
FROM posts
INNER JOIN votes ON votes.post_id = posts.id
GROUP BY posts.id;
Run Code Online (Sandbox Code Playgroud)
返回nPostgresql 中的记录:
count_all | post_id
-----------+---------
1 | 6
3 | 4
3 | 5
3 | 1
1 | 9
1 | 10
(6 rows)
Run Code Online (Sandbox Code Playgroud)
我只想检索返回的记录数:6.
我使用子查询来实现我想要的,但这似乎不是最佳的:
SELECT COUNT(*) FROM (
SELECT COUNT(*) as count_all, posts.id as post_id
FROM posts
INNER JOIN votes ON votes.post_id = posts.id
GROUP BY posts.id
) as x;
Run Code Online (Sandbox Code Playgroud)
如何在PostgreSQL中获得此上下文中的记录数?
给出一个简单的无向图,如下所示:

从D,A,B或C(V_start)开始 - 我必须计算从起始点(V_start)到步骤的起始点(V_start)的可能路径数n,其中每个边和顶点可以无限次访问.
我正在考虑进行深度优先搜索,然后停止steps > n || (steps == n && vertex != V_start),但是,如果,例如,这会变得相当昂贵n = 1000000.我的下一个想法让我将DFS与动态编程相结合,然而,这就是我被困住的地方.
(这不是家庭作业,只是为了学习而被困在图表和算法中.)
我怎样才能在一个合理的时间内解决这个问题n呢?