标签: aggregate-functions

在SQL Server 2008中的空集上执行预处理时,强制AVG返回0而不是NULL

我有两个名为Reviews和Levels的表.

CREATE TABLE [dbo].[Reviews](
    [ReviewID] [int] IDENTITY(1,1) NOT NULL,
    [Rating] [float] NOT NULL,
    [LevelID] [int] NOT NULL,

CREATE TABLE [dbo].[Levels](
    [Name] [varchar](50) NOT NULL,
    [Blocks] [char](960) NOT NULL,
    [LevelID] [int] IDENTITY(1,1) NOT NULL,
Run Code Online (Sandbox Code Playgroud)

我希望能够基本上选择Levels表,其中包含一个额外的列,该列是与该LevelID相关的所有评论的平均值.我目前有这个代码

SELECT   AVG(Rating) AS Average, Name,Levels.LevelID,Blocks
FROM     Reviews, Levels
WHERE    Levels.LevelID = Reviews.LevelID
GROUP BY Levels.LevelID, Name, Blocks
Run Code Online (Sandbox Code Playgroud)

这将返回至少包含一次审阅的级别的正确结果.我希望能够返回没有评论的级别,只需给出平均评分0.

sql t-sql sql-server aggregate-functions sql-server-2008

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

SQL:具有DATE类型列的聚合函数

我偶然发现了一个关于哪些聚合函数适用于DATE类型列的问题(在测试中).所以,据我所知,COUNT只计算行数,MIN和MAX返回最早/最晚的日期.但是,我对SUM和AVG功能有点困惑.他们只是将DATE值转换为整数并计算这些整数的总和/平均值吗?或者我错在这里?无论如何,这种行为在SQL的所有实现中是否一致?提前致谢.

sql date aggregate-functions ansi-sql

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

sqlite:获取每个项目前 X% 的平均值

是否有可能获得组中前 X% 项的平均值?

例如:
我有一个表,其中包含 item_id、timestamp 和 price 列。输出应按 item_id 和时间戳分组,并且“价格列”应取平均值。对于平均只应使用该组中最低的 X% 价格。

我发现了类似的问题(如何为每个组选择前 x 条记录),但这不适用于 sqlite。

sql sqlite aggregate-functions

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

Oracle - 在聚合函数中使用分析函数

我有一个像这样的表 DATE_VALUE:

  Date        Value

  ----        -----

01/01/2012    1.5 

02/01/2012    1.7 

03/01/2012    1.3

04/01/2012    2.1

05/01/2012    3.4
Run Code Online (Sandbox Code Playgroud)

我想计算两个连续日期之间的价值差异之间的差异。但是这个简单的查询不起作用:

select variance(lead( value,1) OVER (order by date) - value)
 from DATE_VALUE
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

ORA-30483:此处不允许使用窗口函数 30483。00000 - “此处不允许使用窗口函数” *原因:仅在查询的 SELECT 列表中允许使用窗口函数。并且,窗口函数不能作为另一个窗口或组函数的参数。

如果我将方差函数移出查询,则查询工作正常:

select variance(difvalue) from (
  select lead( value,1) OVER (order by rundate) - value  as difvalue
  from DATE_VALUE 
);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以修改查询,以便不使用子查询?

sql oracle aggregate-functions analytic-functions

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

MySQL:GROUP BY 上的非聚合字段会发生什么?

我对 MySQL 中的以下行为有一个非常基本的问题。

假设我们执行以下操作GROUP BY

SELECT a, b, SUM(c)
FROM table
GROUP BY b;
Run Code Online (Sandbox Code Playgroud)

发生了什么领域a,这既不是聚集也不是包含在GROUP BY字段?

MySQL 是否只是隐式适用FIRST(a)a?如果是这样,这种行为是一致的还是从 的所有值中获取一个随机值a

mysql aggregate-functions

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

如果任何源列为true,则将布尔值聚合为true

假设我有下表:

id   column_a  column_b   column_c
1     t          f           t
2     t          f           f
3     f          t           f
Run Code Online (Sandbox Code Playgroud)

从上表中,我要:

select rows from id = 1,2;
Run Code Online (Sandbox Code Playgroud)

结果应为:

column_a   column_b   column_c
 t          f            t
Run Code Online (Sandbox Code Playgroud)

如果定义的ID中的任何行对特定列都为true,则我们假设结果为true。

sql postgresql boolean-logic aggregate-functions

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

使用PERCENTILE_DISC和Aggregate函数

我正在尝试将PERCENTILE_DISC与许多其他内置聚合函数一起使用.我尝试的代码读起来像这样,但它失败了:

SELECT
    [DataPoint] AS [DataPoint],
    MIN([Value]) AS [Value MIN],
    MAX([Value]) AS [Value MAX],
    AVG([Value]) AS [Value AVG],
    PERCENTILE_DISC(0.5)
        WITHIN GROUP 
        (ORDER BY [Value])
        OVER 
        (PARTITION BY [DataPoint])
        AS MedianCont
    FROM [Table] AS [Table]
    WHERE ([DataPoint]
        IN (
            ...
        )
    )
    GROUP BY [DataPoint]
Run Code Online (Sandbox Code Playgroud)

这样可行......

SELECT
    Distinct [DataPoint],
    PERCENTILE_DISC(0.5)
    WITHIN GROUP 
    (ORDER BY [Value])
    OVER 
    (PARTITION BY [DataPoint])
    AS MedianCont
    FROM [Table] AS [Table]
    WHERE ([DataPoint]
        IN (
            ...
        )
    )
Run Code Online (Sandbox Code Playgroud)

这有效......

SELECT
    [DataPoint] AS [DataPoint],
    MIN([Value]) AS [Value …
Run Code Online (Sandbox Code Playgroud)

sql-server aggregate-functions

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

MySQL每天选择最后一行

尝试每天选择最后一行。

这是我的(简化的,实际表中有更多记录)表:

+-----+-----------------------+------+
| id  |       datetime        | temp |
+-----+-----------------------+------+
|  9  | 2017-06-05 23:55:00   | 9.5  |
|  8  | 2017-06-05 23:50:00   | 9.6  |
|  7  | 2017-06-05 23:45:00   | 9.3  |
|  6  | 2017-06-04 23:55:00   | 9.4  |
|  5  | 2017-06-04 23:50:00   | 9.2  |
|  4  | 2017-06-05 23:45:00   | 9.1  |
|  3  | 2017-06-03 23:55:00   | 9.8  |
|  2  | 2017-06-03 23:50:00   | 9.7  |
|  1  | 2017-06-03 23:45:00 …
Run Code Online (Sandbox Code Playgroud)

mysql aggregate-functions

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

从熊猫重采样对象中删除空的数据帧

我有一个时间流逝可能超过 30 分钟的 Pandas DataFrame df。我想重新采样

r = df.resample('30T')
Run Code Online (Sandbox Code Playgroud)

然后应用一些聚合:

r.apply(my_fancy_aggregation)
Run Code Online (Sandbox Code Playgroud)

my_fancy_aggregation 不能在空的 array_likes 上工作。

在应用 my_fancy_aggregation 之前,如何从空聚合中清除 r?

python aggregate-functions resampling pandas

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

JAVA spark数据集中的GroupBy和聚合函数

我正在尝试对数据集进行以下操作以进行分组和聚合 Column expend 相加。但这不适用于它为 RelationalGroupedDataset 所说的普通数据集。如何在普通数据集中实现以下操作

dataset.select.(col("col1"),col("col2"),col("expend")).groupBy(col("col1"),col("col2"),col("expend")).agg(sum("expend"))
Run Code Online (Sandbox Code Playgroud)

SQL 查询看起来像 select col1,col2,SUM(expend) from table group by col1,col2

当我尝试此代码时,列会重复。 dataset.columns()给我[col1,col2,expend,expend] 的方法是对的吗?

java group-by aggregate-functions apache-spark

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