我一直在寻找,我无法aggregate在Scala中找到我能理解的函数的示例或讨论.它看起来非常强大.
可以使用此函数来减少元组的值以生成多图类型集合吗?例如:
val list = Seq(("one", "i"), ("two", "2"), ("two", "ii"), ("one", "1"), ("four", "iv"))
Run Code Online (Sandbox Code Playgroud)
应用聚合后:
Seq(("one" -> Seq("i","1")), ("two" -> Seq("2", "ii")), ("four" -> Seq("iv"))
Run Code Online (Sandbox Code Playgroud)
此外,您还可以给实例参数z,segop和combop?我不清楚这些参数是做什么的.
我需要查询每分钟直到该分钟的总行数.
到目前为止我能达到的最好成绩并没有成功.它返回每分钟的计数,而不是每分钟的总计数:
SELECT COUNT(id) AS count
, EXTRACT(hour from "when") AS hour
, EXTRACT(minute from "when") AS minute
FROM mytable
GROUP BY hour, minute
Run Code Online (Sandbox Code Playgroud) sql postgresql datetime aggregate-functions window-functions
鉴于此数据集:
ID Name City Birthyear
1 Egon Spengler New York 1957
2 Mac Taylor New York 1955
3 Sarah Connor Los Angeles 1959
4 Jean-Luc Picard La Barre 2305
5 Ellen Ripley Nostromo 2092
6 James T. Kirk Riverside 2233
7 Henry Jones Chicago 1899
Run Code Online (Sandbox Code Playgroud)
我需要找到3个最老的人,但每个城市只有一个.
如果它只是三个最古老的,它将是......
然而,由于Egon Spengler和Mac Taylor都位于纽约,Egon Spengler将退出,而下一个(Sarah Connor /洛杉矶)将会进入.
优雅的解决方案?
更新:
目前PConroy的变体是最好/最快的解决方案:
SELECT P.*, COUNT(*) AS ct
FROM people P
JOIN (SELECT MIN(Birthyear) AS Birthyear
FROM people
GROUP by City) P2 …Run Code Online (Sandbox Code Playgroud) 我试图了解如何使用LINQ按时间间隔对数据进行分组; 然后理想地聚合每个组.
查找具有明确日期范围的众多示例,我正在尝试按时段分组,例如5分钟,1小时,1天.
例如,我有一个用Date包装DateTime的类:
public class Sample
{
public DateTime timestamp;
public double value;
}
Run Code Online (Sandbox Code Playgroud)
这些观察结果包含在List集合中的一系列中:
List<Sample> series;
Run Code Online (Sandbox Code Playgroud)
因此,按小时分组和按平均值计算总值,我正在尝试执行以下操作:
var grouped = from s in series
group s by new TimeSpan(1, 0, 0) into g
select new { timestamp = g.Key, value = g.Average(s => s.value };
Run Code Online (Sandbox Code Playgroud)
这基本上是有缺陷的,因为它将TimeSpan本身分组.我无法理解如何在查询中使用TimeSpan(或表示间隔的任何数据类型).
查询:
SELECT COUNT(*) as count_all,
posts.id as post_id
FROM posts
INNER JOIN votes ON votes.post_id = posts.id
GROUP BY posts.id;
Run Code Online (Sandbox Code Playgroud)
返回nPostgresql 中的记录:
count_all | post_id
-----------+---------
1 | 6
3 | 4
3 | 5
3 | 1
1 | 9
1 | 10
(6 rows)
Run Code Online (Sandbox Code Playgroud)
我只想检索返回的记录数:6.
我使用子查询来实现我想要的,但这似乎不是最佳的:
SELECT COUNT(*) FROM (
SELECT COUNT(*) as count_all, posts.id as post_id
FROM posts
INNER JOIN votes ON votes.post_id = posts.id
GROUP BY posts.id
) as x;
Run Code Online (Sandbox Code Playgroud)
如何在PostgreSQL中获得此上下文中的记录数?
我在Oracle SQL中遇到问题.
我first_name在employees表格中有一列.我想根据第一个字符对我的记录进行分组first_name.
例如,我有26条记录,一个用name = 'Alice',一用name = 'Bob',等下来的字母表每个名称的第一个字符.查询后,应该有26个组,每个组有一名员工.
我尝试了以下,但它不起作用:
SELECT employee_id, (SUBSTR(first_name,1,1)) AS alpha FROM employees
GROUP BY alpha;
name_which_starts_from employees
A 10
B 2
C 4
D 9
E 3
G 3
H 3
I 2
J 16
K 7
L 6
M 6
N 4
O 1
P 6
R 3
S 13
T 4
V 2
W 3
Run Code Online (Sandbox Code Playgroud) 当我在reshape2包中的dcast函数中使用min或max时,我收到以下警告.它告诉我什么?我找不到任何解释警告信息的东西,我有点困惑,为什么我在使用max时得到它而不是当我使用mean或其他聚合函数时.
警告消息:
在.fun(.value [0],...)中:min没有非缺失参数; 返回Inf
这是一个可重复的例子:
data(iris)
library(reshape2)
molten.iris <- melt(iris,id.var="Species")
summary(molten.iris)
str(molten.iris)
#------------------------------------------------------------
# Both return warning:
dcast(data=molten.iris,Species~variable,value.var="value",fun.aggregate=min)
dcast(data=molten.iris,Species~variable,value.var="value",fun.aggregate=max)
# Length looks fine though
dcast(data=molten.iris,Species~variable,value.var="value",fun.aggregate=length)
#------------------------------------------------------------
# No warning messages here:
aggregate(value ~ Species + variable, FUN=min, data=molten.iris)
aggregate(value ~ Species + variable, FUN=max, data=molten.iris)
#------------------------------------------------------------
# Or here:
library(plyr)
ddply(molten.iris,c("Species","variable"),function(df){
data.frame(
"min"=min(df$value),
"max"=max(df$value)
)
})
#------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud) 如何在MySQL查询中使用COUNT CASE和WHEN语句,在一个MySQL查询中计算数据是否为NULL以及何时不为NULL?
之前可能已经提到过,但我无法通过无数的搜索结果.
给定一个非规范化的MySQL表,什么是最优化的查询来计算列x的每个不同值的使用次数?
例如,给出一个包含的表
mike
mary
mike
Run Code Online (Sandbox Code Playgroud)
返回结果如:
mike 2
mary 1
Run Code Online (Sandbox Code Playgroud)
从MySQL文档中,它似乎count是一个可以使用的聚合函数GROUP BY,但它没有做我想要的(它返回的总行数GROUP BY,而不是每行的出现次数.即这不工作SELECT count(email) as c FROM orders GROUP BY email
我想从表中选择数据,其中特定字段具有最小值,我试过这个:
SELECT * FROM pieces where min(price)
Run Code Online (Sandbox Code Playgroud)
我对MySQL不好,请帮忙吗?谢谢