将查询分组为组和子组

用户名

我想使用SQL或R对数据进行分组,Subarea_codes以便每个Company都能获得前10名或后10名Area_code从本质上说:在Subarea_codes内部Area_codes,每个Company都有其最大或最小的结果。

data.csv

Area_code  Subarea_code  Company   Result
10         101           A         15
10         101           P         10
10         101           C         4
10         102           A         10
10         102           P         8
10         102           C         5
11         111           A         15
11         111           P         20
11         111           C         5
11         112           A         10
11         112           P         5
11         112           C         10


result.csv should be like this

Company   Area_code  Largest_subarea_code  Result  Smallest_subarea_code    Result
A         10         101                   15      102                      10
P         10         101                   10      102                      8            
C         10         102                   5       101                      4
A         11         111                   15      112                      10
P         11         111                   20      112                      5
C         11         112                   10      111                      5

每个公司Area_code中可以有数百个,Subarea_codes但我只希望每个公司的前十名和后十名。

同样,这不必在一个查询中解决,而是可以分为两个查询,这意味着最小的结果显示在results_10_smallest中,最大的结果显示在result_10_largest中。但我希望我可以对每个结果执行一个查询来完成此操作。

我尝试过的

SELECT Company, Area_code, Subarea_code MAX(Result) 
    AS Max_result
FROM data
GROUP BY Subarea_code
ORDER BY Company
;

这使我Companies在每个Subarea_code中获得最高的结果。这意味着:以上数据为A,A,P,AC。

zx8754

使用sqldf包:

df <- read.table(text="Area_code  Subarea_code  Company   Result
10         101           A         15
10         101           P         10
10         101           C         4
10         102           A         10
10         102           P         8
10         102           C         5
11         111           A         15
11         111           P         20
11         111           C         5
11         112           A         10
11         112           P         5
11         112           C         10", header=TRUE)

library(sqldf)
mymax <- sqldf("select Company,
                  Area_code,
                  max(Subarea_code) Largest_subarea_code
                  from df
                  group by Company,Area_code")
mymaxres <- sqldf("select d.Company,
                          d.Area_code,
                          m.Largest_subarea_code,
                          d.Result
                  from df d, mymax m
                  where d.Company=m.Company and
                        d.Subarea_code=m.Largest_subarea_code")

mymin <- sqldf("select Company,
                  Area_code,
                  min(Subarea_code) Smallest_subarea_code
                  from df
                  group by Company,Area_code")
myminres <- sqldf("select d.Company,
                          d.Area_code,
                          m.Smallest_subarea_code,
                          d.Result
                  from df d, mymin m
                  where d.Company=m.Company and
                        d.Subarea_code=m.Smallest_subarea_code")
result <- sqldf("select a.*, b.Smallest_subarea_code,b.Result
                from mymaxres a, myminres b
                where a.Company=b.Company and 
                      a.Area_code=b.Area_code")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法将 GraphQL 查询字段分组为子/嵌套查询组?

来自分类Dev

将行分组为5组

来自分类Dev

将行分组为节或组IOS

来自分类Dev

LINQ:分组子组

来自分类Dev

将数组分组为2个元素的子数组,最后一组缺失

来自分类Dev

ggplot2:将x轴离散值分组为子组

来自分类Dev

将数组分组为2个元素的子数组,最后一组缺失

来自分类Dev

将结构向量排序为子组

来自分类Dev

将子分组应用于 R 中的子组

来自分类Dev

按属性阈值将对象列表分组为子组

来自分类Dev

c#Linq查询按组然后按子组对项目进行分组

来自分类Dev

当某个子组因子为0时,按组和子组对行数进行计数

来自分类Dev

用熊猫将行分组为多个组

来自分类Dev

使用相同的键将2组数据分组为1组

来自分类Dev

将导航栏中的内联元素分组为两组,并防止在组内进行换行

来自分类Dev

我如何选择数据和子查询组

来自分类Dev

Django-按属性将查询划分为子组

来自分类Dev

在ggplot2 boxplot中为每个组和子组添加多个观察值

来自分类Dev

在mongodb中对组查询的结果进行分组

来自分类Dev

Rails查询-按2组分组

来自分类Dev

如何在SQL子查询中进行分组并计算单个组

来自分类Dev

查看组和计数查询

来自分类Dev

按行分组为多个组

来自分类Dev

如何根据组和状态将字段设置为只读?

来自分类Dev

将数据分成子组

来自分类Dev

LINQ查询将父元素和子元素分组

来自分类Dev

LDAP查询以检查用户是否在组或子组中

来自分类Dev

用每个分组的子组数和观察值标记一个箱线图

来自分类Dev

HiveQL将列值的子字符串分组并标识丢失的组