标签: aggregate-functions

计算每个组返回的记录数

我有一般的查询,例如:

SELECT col1, col2, col3, col4
FROM Table1 AS t1
GROUP BY col1, col2, col3, col4
Run Code Online (Sandbox Code Playgroud)

它将返回一个类似于以下内容的表:

col1   col2   col3   col4    
data1  data2  data3  data4
data1  data2  data3  data5
data10 data11 data12 data13
data10 data11 data12 data14
data10 data11 data12 data15
Run Code Online (Sandbox Code Playgroud)

我需要获取col1的计数以显示data1返回两次而data10返回三次.该表应如下所示:

col1   col2   col3   col4   Count  
data1  data2  data3  data4  2
data1  data2  data3  data5  2
data10 data11 data12 data13 3
data10 data11 data12 data14 3
data10 data11 data12 data15 3
Run Code Online (Sandbox Code Playgroud)

我在select语句中尝试了count(*),但这不起作用.

sql-server aggregate-functions

2
推荐指数
1
解决办法
701
查看次数

找到一对完全相同课程的学生

我必须找到一对学生,他们从拥有studentID和的表中选择完全相同的课程courseID.

studentID | courseID
    1           1
    1           2
    1           3
    2           1
    3           1
    3           2
    3           3 
Run Code Online (Sandbox Code Playgroud)

查询应该返回(1, 3).
结果也不应该有重复的行,例如(1,3)(3,1).

mysql sql postgresql aggregate-functions relational-division

2
推荐指数
1
解决办法
3492
查看次数

在 Postgres 中使用带有聚合和 groupby 的子查询进行更新

我正在尝试使用由另一列分组的该列的最大值来更新表中的列。

例如,假设我们有一个名为 transactions 的表,其中包含两列:quantityitem_name。而无论出于何种原因,我们要设置quantity等于最大quantity发现每个item_name

我很不擅长在 SQL 中做这样的事情,但这是我到目前为止所拥有的:

UPDATE transactions 
SET
quantity = subquery.quantity
FROM (select max(quantity), item_name
      from transaction group by item_name) AS subquery
WHERE  and item_name = subquery.item_name;
Run Code Online (Sandbox Code Playgroud)

sql postgresql aggregate-functions sql-update

2
推荐指数
1
解决办法
1345
查看次数

Postgres:在一次选择中获取最小值、最大值、聚合值

我正在使用 Postgresql 8.4。我有一张这样的表:

 type | value
------+-------
 1    | 5
 2    | 6
 1    | 4
 3    | 10
Run Code Online (Sandbox Code Playgroud)

我想写一个选择,它会给我最小值和最大值,以及所有类型的聚合integer[]。想要的结果应该是:

 min | max | types
-----+-----+-----------
 4   | 10  | {1, 2, 3}
Run Code Online (Sandbox Code Playgroud)

为了获得最小值和最大值,我已经有了:

SELECT MIN(value) min, MAX(value) max FROM table;
Run Code Online (Sandbox Code Playgroud)

要在独立选择中获取类型,我使用:

SELECT array_agg(DISTINCT type) types FROM table;
Run Code Online (Sandbox Code Playgroud)

我怎样才能将这些组合成一个选择(这不是太低效)?

sql postgresql aggregate-functions

2
推荐指数
1
解决办法
6653
查看次数

如何在一个查询中获得不同条件下的总和?

如何在一个查询中执行以下操作:

如果我有两个这样的问题

SELECT SUM(value +sal) AS sump
FROM loans 
WHERE active_flag = 1
Run Code Online (Sandbox Code Playgroud)
SELECT SUM(value +sal) AS sumn
FROM loans 
WHERE active_flag = 2
Run Code Online (Sandbox Code Playgroud)

我想得到sumpsumn在同一个查询中

sql informix aggregate-functions

2
推荐指数
1
解决办法
85
查看次数

错误:列必须出现在 GROUP BY 子句中或用于聚合函数中

示例数据:

test,test2
----------
a,qwer
b,wert
c,erty
d,rtuy
d,tyui
e,yuio
e,uiop
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个返回表中唯一值的查询:

SELECT
  test

FROM aatest
GROUP BY test
HAVING (COUNT(test) = 1)
Run Code Online (Sandbox Code Playgroud)

这有效并返回 a、b 和 c,因为 d 和 e 不是唯一的。

但我也想打印出 test2 所以我试过:

select 
test, 
test2
from aatest
GROUP BY test
HAVING (COUNT(test) = 1)
Run Code Online (Sandbox Code Playgroud)

但我得到了错误。

sql postgresql aggregate-functions

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

Spark数据帧的自定义聚合

我想知道是否有某种方法为Spark数据帧指定自定义聚合函数.如果我有一个包含2列的表id,value我想groupBy id并将值聚合到每个列表中,value如下所示:

从:

john | tomato
john | carrot
bill | apple
john | banana
bill | taco
Run Code Online (Sandbox Code Playgroud)

至:

john | tomato, carrot, banana
bill | apple, taco
Run Code Online (Sandbox Code Playgroud)

这在数据帧中是否可行?我问的是数据帧,因为我正在将数据作为一个orc文件读取,并将其作为数据帧加载.我认为将它转换为RDD是无效的.

scala group-by aggregate-functions apache-spark apache-spark-sql

2
推荐指数
1
解决办法
362
查看次数

使用列名称数组聚合Spark数据框,保留名称

我想使用列名数组作为输入聚合Spark数据框,同时保留列的原始名称.

df.groupBy($"id").sum(colNames:_*)
Run Code Online (Sandbox Code Playgroud)

这有效,但无法保留名称.受到这里找到的答案的启发,我没有尝试过这个:

df.groupBy($"id").agg(sum(colNames:_*).alias(colNames:_*))
error: no `: _*' annotation allowed here
Run Code Online (Sandbox Code Playgroud)

它可以像单个元素一样

df.groupBy($"id").agg(sum(colNames(2)).alias(colNames(2)))
Run Code Online (Sandbox Code Playgroud)

如何才能使整个阵列发生这种情况?

scala aggregate-functions apache-spark apache-spark-sql

2
推荐指数
1
解决办法
1101
查看次数

Quantiles在BigQuery Standard SQL中运行

带有Legacy SQL的BigQuery有一个非常方便的QUANTILES功能,可以快速获取表中值的直方图,而无需手动指定存储桶.

我在标准SQL中可用的聚合函数中找不到一个很好的等价物.我是否遗漏了一些显而易见的东西,或者其他什么是模仿它的标准方法?

aggregate-functions histogram google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
4139
查看次数

确定整数范围并按起点和终点对它们进行分组

假设我有一个包含一列(IDNUMBER)的数据集,如下所示:

IDNUMBER
1
2
3
1001
1002
1003
1004
1005
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望将此列中存在的任何数据分成两列,表示连续值的范围.

START, END
1, 3
1001, 1005
Run Code Online (Sandbox Code Playgroud)

我可以用光标或循环来做到这一点,但是有基于集合的解决方案吗?

谢谢.

sql t-sql sql-server aggregate-functions

2
推荐指数
1
解决办法
31
查看次数