小编ski*_*net的帖子

PostgreSQL中的GROUP BY和COUNT

查询:

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中获得此上下文中的记录数?

sql postgresql count distinct aggregate-functions

34
推荐指数
3
解决办法
9万
查看次数

图形遍历n步

给出一个简单的无向图,如下所示:

在此输入图像描述

从D,A,B或C(V_start)开始 - 我必须计算从起始点(V_start)到步骤的起始点(V_start)的可能路径数n,其中每个边和顶点可以无限次访问.

我正在考虑进行深度优先搜索,然后停止steps > n || (steps == n && vertex != V_start),但是,如果,例如,这会变得相当昂贵n = 1000000.我的下一个想法让我将DFS与动态编程相结合,然而,这就是我被困住的地方.

(这不是家庭作业,只是为了学习而被困在图表和算法中.)

我怎样才能在一个合理的时间内解决这个问题n呢?

c c++ algorithm graph

7
推荐指数
1
解决办法
622
查看次数

部门薪水最高的员工

我今天在Hacker News上发现了几个SQL 任务,但是我坚持要解决Postgres中的第二个任务,我将在这里描述:

您有以下简单的表结构:

在此输入图像描述

列出各自部门薪水最高的员工.

在这里设置了一个SQL小提琴供你玩.应该归还特里罗宾逊,劳拉怀特.除了他们的名字,它应该有他们的薪水和部门名称.

此外,我很想知道一个查询将返回Terry Robinsons(销售部门的最高工资)和Laura White(营销部门的最高工资)和IT部门的空行,null作为员工; 明确说明该部门没有雇员(因此没有薪水最高的人).

sql postgresql

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

postgresql ×2

sql ×2

aggregate-functions ×1

algorithm ×1

c ×1

c++ ×1

count ×1

distinct ×1

graph ×1