标签: aggregate-functions

连接/聚合字符串的最佳方式

我正在寻找一种方法将不同行的字符串聚合成一行.我想在很多不同的地方做这个,所以有一个功能来促进这将是很好的.我尝试使用COALESCE和的解决方案FOR XML,但他们只是不为我削减它.

字符串聚合会执行以下操作:

id | Name                    Result: id | Names
-- - ----                            -- - -----
1  | Matt                            1  | Matt, Rocks
1  | Rocks                           2  | Stylus
2  | Stylus
Run Code Online (Sandbox Code Playgroud)

我已经看过CLR定义的聚合函数作为替代COALESCEFOR XML,但显然SQL Azure 支持CLR定义的东西,这对我来说很痛苦因为我知道能够使用它会解决很多问题.我的问题.

是否有任何可能的解决方法,或类似的最佳方法(可能不如CLR那样最优,但嘿,我会采取我能得到的)我可以用来聚合我的东西?

sql sql-server aggregate-functions azure azure-sql-database

91
推荐指数
6
解决办法
13万
查看次数

Oracle中的LISTAGG返回不同的值

我试图LISTAGG在Oracle中使用该功能.我想只获得该列的不同值.有没有一种方法可以在不创建函数或过程的情况下获得不同的值?

  col1  col2 Created_by
   1     2     Smith 
   1     2     John 
   1     3     Ajay 
   1     4     Ram 
   1     5     Jack 

我需要选择col1和LISTAGGcol2(不考虑第3列).当我这样做时,我得到这样的结果LISTAGG:[2,2,3,4,5]

我需要在这里删除重复的'2'; 我只需要col2对col1的不同值.

sql oracle aggregate-functions listagg

82
推荐指数
7
解决办法
23万
查看次数

T-SQL是否具有连接字符串的聚合函数?

可能重复:
SQL Server 2000中的内嵌类型函数?
连接行值T-SQL

我有一个我正在查询的视图,看起来像这样:

BuildingName    PollNumber
------------    ----------
Foo Centre      12        
Foo Centre      13
Foo Centre      14
Bar Hall        15
Bar Hall        16
Baz School      17
Run Code Online (Sandbox Code Playgroud)

我需要编写一个将BuildingNames组合在一起的查询,并显示一个PollNumbers列表,如下所示:

BuildingName    PollNumbers
------------    -----------
Foo Centre      12, 13, 14
Bar Hall        15, 16
Baz School      17
Run Code Online (Sandbox Code Playgroud)

我怎么能在T-SQL中做到这一点?我宁愿不为此写一个存储过程,因为它看起来有点矫枉过正,但我​​不是一个数据库人.看起来像SUM()或AVG()这样的聚合函数是我需要的,但我不知道T-SQL是否有一个.我正在使用SQL Server 2005.

t-sql sql-server group-by sql-server-2005 aggregate-functions

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

命名返回Pandas聚合函数中的列?

我在使用Pandas的groupby功能时遇到了麻烦.我已经阅读了文档,但是我无法弄清楚如何将聚合函数应用于多个列为这些列提供自定义名称.

这非常接近,但返回的数据结构具有嵌套的列标题:

data.groupby("Country").agg(
        {"column1": {"foo": sum()}, "column2": {"mean": np.mean, "std": np.std}})
Run Code Online (Sandbox Code Playgroud)

(即.我想取column2的mean和std,但将这些列作为"mean"和"std"返回)

我错过了什么?

python group-by aggregate-functions pandas

69
推荐指数
4
解决办法
8万
查看次数

在同一列上使用多个WHERE条件进行SELECTING

好吧,我想我可能会忽略一些显而易见/简单的东西......但是我需要编写一个只返回同一列上符合多个条件的记录的查询...

我的表是一个非常简单的链接设置,用于向用户应用标志...

ID   contactid  flag        flag_type 
-----------------------------------
118  99         Volunteer   1 
119  99         Uploaded    2 
120  100        Via Import  3 
121  100        Volunteer   1  
122  100        Uploaded    2
Run Code Online (Sandbox Code Playgroud)

等......在这种情况下,您会看到联系人99和100都被标记为"志愿者"和"上传"......

我需要做的是返回那些只能匹配通过搜索表单输入的多个条件的contactid ... contactid必须匹配所有选择的标志...在我脑海中,SQL应该类似于:

SELECT contactid 
 WHERE flag = 'Volunteer' 
   AND flag = 'Uploaded'...
Run Code Online (Sandbox Code Playgroud)

但......没有回报......我在这里做错了什么?

mysql sql aggregate-functions where-clause

66
推荐指数
4
解决办法
35万
查看次数

如何汇总data.frame中列的所有值?

我有一个包含多个列的数据框; 一些数字和一些字符.如何计算特定列的总和?我GOOGLE了这一点,我看到无数的功能(sum,cumsum,rowsum,rowSums,colSums,aggregate,apply),但我不能让这一切的感觉.

例如,假设我有一个people包含以下列的数据框

people <- read(
  text = 
    "Name Height Weight
    Mary 65     110
    John 70     200
    Jane 64     115", 
  header = TRUE
)
…
Run Code Online (Sandbox Code Playgroud)

我如何得到所有重量的总和?

r sum aggregate-functions dataframe

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

Spark SQL:将聚合函数应用于列列表

有没有办法将聚合函数应用于数据帧的所有(或列表)列groupBy?换句话说,有没有办法避免为每一列执行此操作:

df.groupBy("col1")
  .agg(sum("col2").alias("col2"), sum("col3").alias("col3"), ...)
Run Code Online (Sandbox Code Playgroud)

aggregate-functions dataframe apache-spark apache-spark-sql

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

GROUP BY没有聚合函数

我试图理解没有聚合函数的GROUP BY (新的oracle dbms).
它是如何运作的?
这是我尝试过的.

我将运行我的SQL的EMP表.
EMP表

SELECT ename , sal
FROM emp
GROUP BY ename , sal
Run Code Online (Sandbox Code Playgroud)

结果

SELECT ename , sal  
FROM emp  
GROUP BY ename;  
Run Code Online (Sandbox Code Playgroud)

结果

ORA-00979:不是GROUP BY表达式
00979. 00000 - "不是GROUP BY表达式"
*原因:
*操作:行
错误:397列:16

SELECT ename , sal  
FROM emp  
GROUP BY sal;  
Run Code Online (Sandbox Code Playgroud)

结果

ORA-00979:不是GROUP BY表达式
00979. 00000 - "不是GROUP BY表达式"
*原因:
*操作:行错误:411列:8

SELECT empno , ename , sal  
FROM emp  
GROUP BY sal , ename;  
Run Code Online (Sandbox Code Playgroud)

结果

ORA-00979:不是GROUP BY表达式
00979. 00000 - "不是GROUP BY表达式"
*原因: …

sql oracle group-by aggregate-functions

60
推荐指数
6
解决办法
13万
查看次数

避免在PostgreSQL中除以零

我想在SELECT子句中执行除法.当我连接一些表并使用聚合函数时,我经常使用null或零值作为分隔符.至于现在我只想出这种避免零和空值除法的方法.

(CASE(COALESCE(COUNT(column_name),1)) WHEN 0 THEN 1
ELSE (COALESCE(COUNT(column_name),1)) END) 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来做到这一点?

sql postgresql null aggregate-functions divide-by-zero

55
推荐指数
4
解决办法
6万
查看次数

计算Postgresql中的累计总数

我正在使用countgroup by获得每天注册的订阅者数量:

  SELECT created_at, COUNT(email)  
    FROM subscriptions 
GROUP BY created at;
Run Code Online (Sandbox Code Playgroud)

结果:

created_at  count
-----------------
04-04-2011  100
05-04-2011   50
06-04-2011   50
07-04-2011  300
Run Code Online (Sandbox Code Playgroud)

我想每天获得累计订阅者总数.我怎么得到这个?

created_at  count
-----------------
04-04-2011  100
05-04-2011  150
06-04-2011  200
07-04-2011  500
Run Code Online (Sandbox Code Playgroud)

sql postgresql aggregate-functions

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