我有两个名为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.
我偶然发现了一个关于哪些聚合函数适用于DATE类型列的问题(在测试中).所以,据我所知,COUNT只计算行数,MIN和MAX返回最早/最晚的日期.但是,我对SUM和AVG功能有点困惑.他们只是将DATE值转换为整数并计算这些整数的总和/平均值吗?或者我错在这里?无论如何,这种行为在SQL的所有实现中是否一致?提前致谢.
是否有可能获得组中前 X% 项的平均值?
例如:
我有一个表,其中包含 item_id、timestamp 和 price 列。输出应按 item_id 和时间戳分组,并且“价格列”应取平均值。对于平均只应使用该组中最低的 X% 价格。
我发现了类似的问题(如何为每个组选择前 x 条记录),但这不适用于 sqlite。
我有一个像这样的表 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)
我想知道是否有任何方法可以修改查询,以便不使用子查询?
我对 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?
假设我有下表:
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。
我正在尝试将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) 尝试每天选择最后一行。
这是我的(简化的,实际表中有更多记录)表:
+-----+-----------------------+------+
| 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) 我有一个时间流逝可能超过 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?
我正在尝试对数据集进行以下操作以进行分组和聚合 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] 的方法是对的吗?
sql ×5
mysql ×2
sql-server ×2
ansi-sql ×1
apache-spark ×1
date ×1
group-by ×1
java ×1
oracle ×1
pandas ×1
postgresql ×1
python ×1
resampling ×1
sqlite ×1
t-sql ×1