58得票7回答
在json_agg中选择列

我有一个问题,就像这样: SELECT a.id, a.name, json_agg(b.*) as "item" FROM a JOIN b ON b.item_id = a.id GROUP BY a.id, a.name; 如何在b中选择列,以便在JSON对象中不包含b....

50得票6回答
为什么在SQL查询中要使用Group by 1和Group by 1,2,3?

在SQL查询中,我们使用Group by子句来应用聚合函数。 但是,为什么要在Group by子句中使用数字值而不是列名呢?例如:Group by 1。

32得票3回答
为什么在GROUP BY语句中使用通配符无效?

我正在尝试让下面的SQL语句起作用,但是我遇到了一个语法错误: SELECT A.*, COUNT(B.foo) FROM TABLE1 A LEFT JOIN TABLE2 B ON A.PKey = B.FKey GROUP BY A.* 这里,A是一个有40列的宽表,如果可能的话,...

32得票1回答
当使用子查询时,Postgres错误提示“列必须出现在GROUP BY子句中或者在聚合函数中使用”。

我有两个表employee和phones。一个员工可以拥有0到n个电话号码。我想列出员工姓名及其电话号码。我正在使用下面的查询,运行良好。 SELECT empname,array_agg(phonenumber) AS phonenumbers FROM employee LEFT OU...

27得票3回答
如何选择多个列但只按一个列进行分组?

我在使用group by时遇到了问题,我想选择多个列,但只按照一个列进行分组。下面是我尝试的查询语句,但是它给我报错了。 SELECT Rls.RoleName,Pro.[FirstName],Pro.[LastName],Count(UR.[RoleId]) as [Count] from...

26得票4回答
如何获取一个计数为零的群组?

我将尝试从我的SQL服务器数据库中的数据制作一个图表。我将列出所有街道,并统计居住在该街道的用户数量,即使数量为零。 为此,我尝试了以下查询: Create table Streets( ID int IDENTITY primary key, Name varchar(100)...

20得票6回答
从表格中找出连续的“n”个空闲数字。

我有一些带有数字的表格,格式如下(状态为FREE或ASSIGNED): id_set number status ----------------------- 1 000001 ASSIGNED 1 000002 FREE 1 ...

20得票6回答
计算在一行中有两列或更多列的值超过某个特定值 [篮球,双十,三双]

我玩的篮球游戏可以将统计数据输出为数据库文件,因此可以根据这些数据计算游戏中未实现的统计指标。到目前为止,我一直没有问题地计算出我想要的统计数据,但现在遇到了一个问题:如何从球员的比赛统计数据中计算出他在整个赛季中完成的两双和/或三双次数。 两双和三双的定义如下: 两双: 在一场比赛中,球...

19得票7回答
将连续数值相同的行分组。

我有一个情况,我觉得可以使用窗口函数来解决,但我不确定。 想象一下以下的表格。 CREATE TABLE tmp ( date timestamp , id_type integer ) ; INSERT INTO tmp (date, id_type) VALUES ( '...