标签: aggregate

在两个表之间使用 MAX 聚合

我有两个表,雇主和职位:

雇主
eID
eName

职位
eID
工资

我需要在两个表之间匹配我的 eID,确定最高工资是多少,然后只打印 eName。关于我如何做到这一点的任何建议?我尝试了多种方法,但似乎没有任何效果。

我不确定在哪里放置 max(salary) 函数:

select eName
from employer, position
where employer.eID = position.eID
Run Code Online (Sandbox Code Playgroud)

sql aggregate max match

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

将聚合运算符从 SQL 转换为关系代数

我编写了几个 SQL 查询,希望将其转换为关系代数。但是,一些查询使用聚合运算符,我不知道如何转换它们。值得注意的是,他们使用 COUNT 和 GROUP BY.. HAVING 运算符。

这是架构:

Sailors( sid , sname, rating) Reserves( sid , bid , price) Boats( bid , bname)

这是我正在做的一个例子:找到恰好由 2 个水手预订的所有船只的出价和名称。

SELECT B.bid, B.bname
FROM Boats B, Reserves R
WHERE B.bid = R.bid
GROUP BY R.bid
HAVING 2 = (SELECT COUNT(*)
FROM Reserves R2
WHERE R2.bid = B.bid);
Run Code Online (Sandbox Code Playgroud)

允许的关系代数运算:选择、投影、连接、条件连接、重命名、并集、交集、叉积、除法

sql aggregate relational-algebra

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

如何按月或年聚合日期 Mysql

$SQLString = "SELECT    
            count(score) as counts,
            DATE(date),
            SUM(CASE WHEN gender = 1 then 1 ELSE 0 END) Male,
            SUM(CASE WHEN gender = 2 then 1 ELSE 0 END) Female,
            AVG(age) as age, score
            FROM persons  
            WHERE date > '".$_SESSION['date1']."' AND date < '".$_SESSION['date2']."' 
            GROUP BY DATE(date) 
            ORDER BY DATE(date) asc";   
Run Code Online (Sandbox Code Playgroud)

这是我的查询,每天显示一些数据,如性别、年龄等。如何按月或年汇总这些日期并显示添加的数据?

如果我不解释我自己,请注意我:)

mysql aggregate sum

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

R中动物园对象的分位数和聚合

我有一个zoo对象看起来像

library(zoo)
library(lubridate)
TimeStamp=seq(dmy("01/01/2002"), dmy("17/12/2014"), by="day")
Dummy= rnorm(length(TimeStamp))
Temp=zoo(Dummy,TimeStamp)
Run Code Online (Sandbox Code Playgroud)

我正在尝试计算一年中每一天的 5%、33%、67% 和 95% 百分位数/分位数以创建“规范”。因此,对于 01/01,我希望根据我在数据集中对 1 月 1 日的所有观察结果获得 4 个分位数值。每天都做同样的事情。

现在我正在使用它:

aggregate(Temp ~ day(index(Temp)) + month(index(Temp)), FUN = 'quantile')
Run Code Online (Sandbox Code Playgroud)

问题是使用这个函数我不确定返回quantile函数的值是什么。

有什么建议吗?

aggregate r quantile

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

pymongo 和聚合输出

这是我的 pymongo 电话

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['somedb']
collection = db.some_details
pipe = [{'$group': {'_id': '$mvid', 'count': {'$sum': 1}}}]
TestOutput = db.collection.aggregate(pipeline=pipe)
print(list(TestOutput))
client.close()
Run Code Online (Sandbox Code Playgroud)

由于某种原因,结果列表为空,而在 Robomongo 中,我得到非空输出。

格式不正确?

确切的 Robomongo 查询是

db.some_details.aggregate([{$group: {_id: '$mvid', count: {$sum: 1}}}])
Run Code Online (Sandbox Code Playgroud)

更新 输出看起来像

{
    "result" : [ 
        {
            "_id" : "4f973d56a64facfaa7c3r4rf262ad5be695eef329aff7ab4610ddedfb8137427",
            "count" : 84.0000000000000000
        }, 
        {
            "_id" : "a134106e1a1551d296fu777cedc933e7df2d0a9bc5f41de047aba3ee29bace78",
            "count" : 106.0000000000000000
        }, 

    ],
    "ok" : 1.0000000000000000
}
Run Code Online (Sandbox Code Playgroud)

aggregate pymongo output

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

什么时候应该在聚合根中应用工厂方法?

领域驱动设计建议我们应该通过使用工厂来创建聚合根来隐藏复杂性。我们可以通过以下方式来创建聚合根:

  1. 工厂类中的静态工厂方法
  2. 具有工厂方法的聚合根

我们在(1)和(2)之间做出选择的依据是什么?

domain-driven-design factory aggregate

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

按组划分数据列

如果我有一个数据框,例如:

group=rep(1:4,each=10)
data=c(seq(1,10,1),seq(5,50,5),seq(20,11,-1),seq(0.3,3,0.3))
DF=data.frame(group,data)
Run Code Online (Sandbox Code Playgroud)

现在,我想将每个data元素除以其组的平均值。例如:

group=rep(1:4,each=10)
data=c(seq(1,10,1),seq(5,50,5),seq(20,11,-1),seq(0.3,3,0.3))
DF=data.frame(group,data)
aggregate(DF,by=list(DF$group),FUN=mean)

#Group.1 group  data
#1       1     1  5.50
#2       2     2 27.50
#3       3     3 15.50
#4       4     4  1.65

data1=c(seq(1,10,1)/5.5,seq(5,50,5)/27.5,seq(20,11,-1)/15.5,seq(0.3,3,0.3)/1.65)
DF1=data.frame(group, data1)
Run Code Online (Sandbox Code Playgroud)

但是,这有点令人费解,并且在大型数据集中不容易工作。我觉得有一个apply应用程序可以在这里使用,但我找不到一个很好的方法来做到这一点。

grouping aggregate r summary mean

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

Elasticsearch - 组合来自多个文档的字段

假设我有一堆这样的文件:

{
    "foo" : [1, 2, 3]
}

{
    "foo" : [3, 4, 5]
}
Run Code Online (Sandbox Code Playgroud)

对于针对这些文档运行的查询,我正在寻找一种方法来返回所有值的数组foo(理想情况下是唯一值,但可以重复):

{
    "foo" : [1, 2, 3, 3, 4, 5]
}
Run Code Online (Sandbox Code Playgroud)

我已经研究了聚合 API,但如果可能的话,我看不出如何实现这一点。我当然可以在代码中手动编译结果,但是我可以拥有数千个文档,以这种方式获得结果会更清晰。

arrays merge aggregate elasticsearch

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

聚合返回空数组 - 猫鼬

我有以下两个简单的查询:

Comment.aggregate([{$match: { _id: req.params.id }}])
  .exec(function(err, result) {
    // result is empty
  });

Comment.find({ _id: req.params.id })
  .exec(function (err, result) {
    // correct result returned
  });
Run Code Online (Sandbox Code Playgroud)

我的问题是,聚合函数返回一个空数组。他们不应该返回相同的结果吗?

aggregate mongoose node.js mongoose-schema

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

如何在mongodb中减去两个日期时间

我已经使用了聚合函数。

db.checkins.aggregate([
       {$match: {checkinType: "Beacon",
               "associationIds.organizationId":"af39bc69-1938-4149",
               "checkinData.time": {"$gte": new Date("2018-01-18T18:30:00.000Z"), 
                                   "$lt": new Date("2018-01-19T18:30:00.000Z")}
                }
        },
       {"$sort":{"checkinData.time":-1}},
       {$group: {"_id":
                    {"orgId":"$asst.organizationId", "userId":"$asst.userId"},
                    "lastSeen":{"$first":"$checkinData.time"},
                   "firstSeen":{"$last":"$checkinData.time"},
               }
       }, 
      {"$project":{"_id":1,"lastSeen":1, "firstSeen":1, 
                  totalHourSpent:{$subtract: ["$lastSeen","$firstSeen"]}}}, 
  ])
Run Code Online (Sandbox Code Playgroud)

当我执行此查询mongo时,以毫秒为单位返回totalHourSpent,如下所示。

{
  "_id" : {
        "orgId" : "af39bc69-1938-4149-b9f7-f101fd9baf73",
        "userId" : "34adb4a0-0012-11e7-bf32-cf79d6b423e9"
  },
 "lastSeen" : ISODate("2018-01-19T18:49:52.242+05:30"),
 "firstSeen" : ISODate("2018-01-19T10:08:21.026+05:30"),
 "totalHourSpent" : NumberLong("31291216")
},
{
  "_id" : {
       "orgId" : "af39bc69-1938-4149-b9f7-f101fd9baf73",
       "userId" : "679416b0-3f88-11e7-8d27-77235eb1ba9b"
   },
   "lastSeen" : ISODate("2018-01-19T20:51:30.946+05:30"),
   "firstSeen" : ISODate("2018-01-19T11:07:44.256+05:30"),
   "totalHourSpent" : NumberLong("35026690")
 },
Run Code Online (Sandbox Code Playgroud)

如何以小时为单位计算totalHourSpent。提前致谢。

aggregate mongodb node.js mlab

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