标签: group-by

如何在MySQL中按周分组?

Oracle的表服务器提供内置函数TRUNC(timestamp,'DY').此函数将上一个星期日的任何时间戳转换为午夜.在MySQL中执行此操作的最佳方法是什么?

Oracle还提供TRUNC(timestamp,'MM')将时间戳转换为发生月份的第一天的午夜.在MySQL中,这个很简单:

TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01'))
Run Code Online (Sandbox Code Playgroud)

但这个DATE_FORMAT技巧几周不会奏效.我知道这个WEEK(timestamp)功能,但我真的不想要一年内的周数; 这个东西是多年的工作.

mysql datetime data-migration group-by dayofweek

76
推荐指数
4
解决办法
9万
查看次数

Pandas按groupby求和,但不包括某些列

在Pandas数据帧上进行groupby的最佳方法是什么,但从该组中排除某些列?例如,我有以下数据帧:

Code   Country      Item_Code   Item    Ele_Code    Unit    Y1961    Y1962   Y1963
2      Afghanistan  15          Wheat   5312        Ha      10       20      30
2      Afghanistan  25          Maize   5312        Ha      10       20      30
4      Angola       15          Wheat   7312        Ha      30       40      50
4      Angola       25          Maize   7312        Ha      30       40      50
Run Code Online (Sandbox Code Playgroud)

我想通过列Country和Item_Code进行分组,并且只计算落在Y1961,Y1962和Y1963列下的行的总和.生成的数据框应如下所示:

Code   Country      Item_Code   Item    Ele_Code    Unit    Y1961    Y1962   Y1963
2      Afghanistan  15          C3      5312        Ha      20       40       60
4      Angola       25          C4      7312        Ha      60       80      100
Run Code Online (Sandbox Code Playgroud)

现在我这样做:

df.groupby('Country').sum()
Run Code Online (Sandbox Code Playgroud)

但是,这也会将Item_Code列中的值相加.有什么方法可以指定要在sum()操作中包含哪些列以及要排除哪些列?

python group-by aggregate pandas

76
推荐指数
3
解决办法
13万
查看次数

ILookup <TKey,TVal>与IGrouping <TKey,TVal>

我一直有麻烦关节之间的差异ILookup<TKey, TVal>IGrouping<TKey, TVal>,并很好奇,如果我理解正确了.LINQ通过生成IGrouping项目序列来复杂化问题,同时也为我提供了ToLookup扩展方法.所以在我仔细观察之前感觉它们是一样的.

var q1 = 
    from n in N
    group n by n.MyKey into g
    select g;
// q1 is IEnumerable<IGrouping<TKey, TVal>>
Run Code Online (Sandbox Code Playgroud)

这相当于:

var q2 = N.GroupBy(n => n.MyKey, n => n);
// q2 is IEnumerable<IGrouping<TKey, TVal>>
Run Code Online (Sandbox Code Playgroud)

这看起来很像:

var q3 = N.ToLookup(n => n.MyKey, n => n);
// q3 is ILookup<TKey, TVal>
Run Code Online (Sandbox Code Playgroud)

我在以下类比中是否正确?

  1. An IGrouping<TKey, TVal>是一个单独的组(即键控序列),类似于KeyValuePair<TKey, TVal>值实际上是一系列元素(而不是单个元素)
  2. 一个IEnumerable<IGrouping<TKey, TVal>>是那些序列(类似于迭代时得到的结果)IDictionary<TKey, TVal>
  3. An ILookup<TKey, TVal>更像是一个IDictionary<TKey, …

c# linq group-by igrouping ilookup

75
推荐指数
3
解决办法
9990
查看次数

在LINQ Lambda表达式中使用GroupBy,Count和Sum

我有一系列具有属性重量,体积和所有者的盒子.

我想使用LINQ获取盒子信息的汇总列表(按所有者)

例如

**Owner, Boxes, Total Weight, Total Volume**  
Jim,     5,     1430.00,      3.65  
George,  2,     37.50,        1.22
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何使用Lambda表达式执行此操作吗?

linq lambda group-by sum count

75
推荐指数
3
解决办法
15万
查看次数

列的顺序是否在group by子句中重要?

如果我有两个列,一个具有非常高的基数,另一个具有非常低的基数(唯一的值#),那么我按哪个顺序分组?

这是一个例子:

select 
     dimensionName, 
     dimensionCategory, 
     sum(someFact)
from SomeFact f
join SomeDim d on f.dimensionKey = d.dimensionKey
group by 
    d.dimensionName,  -- large number of unique values
    d.dimensionCategory -- small number of unique values
Run Code Online (Sandbox Code Playgroud)

是否有重要的情况?

sql sql-server group-by

74
推荐指数
4
解决办法
3万
查看次数

LINQ Group By Multiple fields -Syntax help

为了按多列分组,示例2需要进行哪些更正

例1

var query = from cm in cust
            group cm by new { cm.Customer, cm.OrderDate } into cms
            select
            new 
            { Key1 = cms.Key.Customer,Key2=cms.Key.OrderDate,Count=cms.Count() };
Run Code Online (Sandbox Code Playgroud)

例2(不正确)

   var qry = 
   cust.GroupBy(p => p.Customer, q => q.OrderDate, (k1, k2, group) =>
   new { Key1 = k1, Key2 = k2, Count = group.Count() });
Run Code Online (Sandbox Code Playgroud)

c# linq group-by

73
推荐指数
1
解决办法
8万
查看次数

SQL Server - 列"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中"

我想B在我的下面的SQL中显示该列,但是当我将它添加到查询时它会给我以下错误:

列T2.B'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

我的代码:

SELECT A, COUNT(B) as T1, B 
FROM T2 
WHERE ID=1 
GROUP BY A 
Run Code Online (Sandbox Code Playgroud)

sql-server group-by

72
推荐指数
1
解决办法
27万
查看次数

使用group by vs distinct时的巨大性能差异

我正在HSQLDB服务器上执行一些测试,其中包含一个包含500 000个条目的表.该表没有索引.有5000个不同的业务键.我需要一份清单.当然,我开始DISTINCT查询:

SELECT DISTINCT business_key FROM memory WHERE
   concept <> 'case' or 
   attrib <> 'status' or 
   value <> 'closed'
Run Code Online (Sandbox Code Playgroud)

大约需要90秒!

然后我尝试使用GROUP BY:

SELECT business_key FROM memory WHERE
       concept <> 'case' or 
       attrib <> 'status' or 
       value <> 'closed'
GROUP BY business_key
Run Code Online (Sandbox Code Playgroud)

它需要1秒!!!

试图找出我运行的差异,EXLAIN PLAN FOR但它似乎为两个查询提供相同的信息.

EXLAIN PLAN FOR DISTINCT ...

isAggregated=[false]
columns=[
  COLUMN: PUBLIC.MEMORY.BUSINESS_KEY
]
[range variable 1
  join type=INNER
  table=MEMORY
  alias=M
  access=FULL SCAN
  condition = [    index=SYS_IDX_SYS_PK_10057_10058
    other condition=[
    OR arg_left=[ …
Run Code Online (Sandbox Code Playgroud)

sql performance group-by distinct hsqldb

71
推荐指数
1
解决办法
10万
查看次数

命名返回Pandas聚合函数中的列?

我在使用Pandas的groupby功能时遇到了麻烦.我已经阅读了文档,但是我无法弄清楚如何将聚合函数应用于多个列为这些列提供自定义名称.

这非常接近,但返回的数据结构具有嵌套的列标题:

data.groupby("Country").agg(
        {"column1": {"foo": sum()}, "column2": {"mean": np.mean, "std": np.std}})
Run Code Online (Sandbox Code Playgroud)

(即.我想取column2的mean和std,但将这些列作为"mean"和"std"返回)

我错过了什么?

python group-by aggregate-functions pandas

69
推荐指数
4
解决办法
8万
查看次数

Pandas Groupby值范围

在pandas中有一个简单的方法来调用groupby一系列的值增量吗?例如,给定下面的示例,我可以B使用0.155增量对列进行bin和group ,以便例如列B中的前几个组被分成两个范围之间的范围.groupby

import numpy as np
import pandas as pd
df=pd.DataFrame({'A':np.random.random(20),'B':np.random.random(20)})

     A         B
0  0.383493  0.250785
1  0.572949  0.139555
2  0.652391  0.401983
3  0.214145  0.696935
4  0.848551  0.516692
Run Code Online (Sandbox Code Playgroud)

或者,我可以先按这些增量将数据分类到新列中,然后用于A确定可能适用于列的任何相关统计数据groupby

python group-by pandas

69
推荐指数
2
解决办法
5万
查看次数