首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中筛选并聚合两个数据集。

在SQL中筛选并聚合两个数据集。
EN

Stack Overflow用户
提问于 2021-01-21 23:07:02
回答 2查看 44关注 0票数 0

我有两个数据集,df1和df2,其中我想要执行一个连接,设置一个过滤器,然后执行一个聚合。

df1

代码语言:javascript
复制
version host    date                                      
pat     a16     12/1/2019   
fam     a16     12/1/2019   
emp     a16     12/1/2019   
dan     a16     12/1/2019 

df2

代码语言:javascript
复制
name    purpose  date
pat     hi       12/1/2019
fam     cat      12/1/2019
hello   dog      12/1/2019
dan     bird     12/1/2019

以下是连接结果:

代码语言:javascript
复制
version host    date                 name    purpose       date                      
pat     a16     12/1/2019            pat     hi            12/1/2019
fam     a16     12/1/2019            fam     cat           12/1/2019

期望的

代码语言:javascript
复制
version    host    date             name      purpose   date
2          a16     12/1/2019        2         2         12/1/2019

代码语言:javascript
复制
    select    count(df1.version), df1.host, df1.date, count(df2.name),count(df2.purpose), df2.date
    from      df1
    left join df2
    on        df1.version = df2.name  AND
              df1.date    = df2.date
    where     df2.purpose = 'hi' OR df2.purpose = 'cat'
    group by  df1.host

但是,对于所需列的计数,我没有得到所需的结果。如有任何建议,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-21 23:13:08

添加另外两个group by子句应该可以修复。

试试GROUP BY df1.host, df2.date, df1.date

票数 1
EN

Stack Overflow用户

发布于 2021-01-22 01:08:41

我在mysql中创建了表df1和df2,它使用脚本提供了所需的结果。我的表在结构上可能与您的表略有不同,您提到了SQL,并且在SQL和mySql的工作方式上存在差异。您使用的是SQL还是mySQL?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65837069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档