标签: aggregate-functions

ClickHouse 聚合 - 按日/月/年(时间戳)分组?

ClickHouse 有没有办法用时间戳值执行 GROUP BY DAY/MONTH/YEAR() ?在将 MySQL 查询重写为 ClickHouse 时,很难弄清楚这一点。我的 MySQL 查询看起来像这样......

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY DAY(stamp)

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY MONTH(stamp)

SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY …
Run Code Online (Sandbox Code Playgroud)

mysql group-by aggregate aggregate-functions clickhouse

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

如果存在 NULL ELSE 显示最大值,如何显示 NULL

我有一张包含一些出勤数据的表格。我正在尝试制定一个具有不同用户的表,如果没有 NULL,则具有开始(MIN)和结束(MAX)。

我有“time_captured”的表

用户 开始 结尾
A 0 60
A 60 120
A 700
C 120 180
C 540 860

我想要的结果

用户 开始 结尾
A 0
C 120 860

我尝试了下面的代码,但是结果不是我所期望的(显示原始表格)

SELECT
MIN(time_captured.start_time),
CASE 
WHEN
time_captured.end_time IS NULL THEN NULL
ELSE
MAX(time_captured.end_time)
END,
time_captured.user_sign
FROM
time_captured
GROUP BY
time_captured.user_sign,
time_captured.end_time
Run Code Online (Sandbox Code Playgroud)
用户 开始 结尾
A 0 60
A 60 120
A 700
C 120 180
C 540 860

sql null aggregate-functions

2
推荐指数
1
解决办法
59
查看次数

SQL聚合函数使用MIN和AVG

如何在数据中省略零?

例如使用MIN功能?我希望最小值除了0 ...

我怎样才能获得下一个最大的?

MIN(availables.price)
Run Code Online (Sandbox Code Playgroud)

如果我使用AVG功能,还有一种通常的方法可以以相同的方式跳过0吗?问题是我继承的表不使用NULL值,但对所有财务数据都有0.00.

谢谢,

sql average aggregate ruby-on-rails aggregate-functions

1
推荐指数
2
解决办法
3536
查看次数

将聚合函数应用于另一个聚合函数的SQL查询

我有几个查询结果使用一个或多个聚合函数和日期GROUP-BY,所以他们看起来像这样:

Date     VisitCount(COUNT)  TotalBilling(SUM)
1/1/10     234                15765.21
1/2/10     321                23146.27
1/3/10     289                19436.51

上面简化的SQL是:

SELECT 
  VisitDate, 
  COUNT(*) AS VisitCount, 
  SUM(BilledAmount) AS TotalBilling 

FROM Visits 

GROUP BY VisitDate
Run Code Online (Sandbox Code Playgroud)

我想要的是一种将聚合函数(如AVG)应用于结果集中的一列的方法.例如,我想将"AvgVisits"和"AvgBilling"列添加到结果集中,如下所示:

Date     VisitCount(COUNT)  TotalBilling(SUM)  AvgVisits  AvgBilling
1/1/10     234                15765.21          281.3      19449.33
1/2/10     321                23146.27          281.3      19449.33
1/3/10     289                19436.51          281.3      19449.33

SQL不允许将聚合函数应用于另一个聚合函数或子查询,因此我能想到的唯一方法是使用临时表或迭代结果集并手动计算值.有没有办法在没有临时表或手动计算的情况下在MSSQL2008中执行此操作?

sql-server aggregate-functions sql-server-2008

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

在两个表之间使用AVG()函数

我有两张桌子,我需要确定能为所有职位提供最高平均工资的公司.我的表格如下:

employer
eID (primary key), eName, location

position
eID (primary key), pName (primary key), salary)
Run Code Online (Sandbox Code Playgroud)

我写的代码确定所有高于1的平均工资,但我需要找到最高的平均工资

到目前为止,这是我的代码:

SQL> select eName
  2  from Employer E inner join position P on E.eID = P.eID
  3  where salary > (select avg(salary) from position);
Run Code Online (Sandbox Code Playgroud)

这会输出高于最低平均值的所有工资,但我只需要最高的平均值.我尝试使用av​​g(薪水)>(从位置选择avg(薪水))但我收到了不允许组功能的错误.

任何帮助或建议将不胜感激!

sql oracle aggregate-functions

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

Oracle聚合用于使用逗号连接字符串,以及编写自定义聚合

如何在sum上创建一个函数,如sum,min,max?

它将在结果集上运行.

Select join(',', Name), sum(total) From Account Group By IdCity
Run Code Online (Sandbox Code Playgroud)

oracle function aggregate-functions

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

SQL - 计算具有组合总和的记录数

我有一个类似于这样的用户表:

|  ID  |  DONATION  |   RANK   |
|  4   |        10  |     12   |
|  9   |        20  |      8   |
|  2   |        40  |      5   |
|  3   |        80  |      2   |
Run Code Online (Sandbox Code Playgroud)

我想构建一个查询,在那里我检索捐赠总和小于100的用户数,按排名排序......类似(显然不正确):

select count(*) where sum(donation) < 100 order by rank
Run Code Online (Sandbox Code Playgroud)

如果可能的话,无法弄清楚如何做到这一点.甚至不确定我是否正确地采取这种方式.任何想法或指针?

mysql sql aggregate-functions

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

python是否等同于C#的Enumerable.Aggregate?

在C#中,如果我有一个字符串集合,并且我想获得一个逗号分隔的字符串表示集合(在开头或结尾没有无关的注释),我可以这样做:

string result = collection.Aggregate((s1, s2) => String.Format("{0}, {1}", s1, s2));
Run Code Online (Sandbox Code Playgroud)

我可以做点什么

result = collection[0]
for string in collection[1:]:
    result = "{0}, {1}".format(result, string)
Run Code Online (Sandbox Code Playgroud)

但这感觉就像一块垃圾.python是否有一种优雅的方式来完成同样的事情?

c# python aggregate aggregate-functions

1
推荐指数
2
解决办法
809
查看次数

根据其他字段的内容添加或减去值

我有一张交易表.所有交易都存储为正数,如果存款或取款只有行动更改.如何编写可以根据操作总结数字的查询

-actions- 1买2卖5股息

ID  ACTION     SYMBOL     PRICE    SHARES
1    1         AGNC       27.50    150
2    2         AGNC       30.00     50
3    5         AGNC        1.25    100
Run Code Online (Sandbox Code Playgroud)

因此查询应显示AGNC共有100个共享.

SELECT
   symbol,sum(shares) AS shares,
   ROUND(abs(sum((price * shares))),2) AS cost,
FROM bf_transactions
WHERE (action_id <> 5) 
GROUP BY symbol 
HAVING sum(shares) > 0
Run Code Online (Sandbox Code Playgroud)

我最初使用该查询时,我有正数/负数,并且工作得很好..但我现在不知道怎么做只有正数.

mysql sql case aggregate-functions

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

根据最大值加入

我想知道如何将表自身联接起来或使用case语句在视图中分配最大值。说我有下表:

 Lastname     Firstname     Filename
 Smith        John          001
 Smith        John          002
 Smith        Anna          003
 Smith        Anna          004
Run Code Online (Sandbox Code Playgroud)

我想创建一个列出所有值但又有另一列显示当前行是否为最大行的视图,例如:

 Lastname     Firstname     Filename     Max_Filename
 Smith        John          001          NULL
 Smith        John          002          002
 Smith        Anna          003          NULL
 Smith        Anna          004          NULL
Run Code Online (Sandbox Code Playgroud)

这可能吗?我尝试了以下查询:

 SELECT Lastname, Firstname, Filename, CASE WHEN Filename = MAX(FileName) 
 THEN Filename ELSE NULL END AS Max_Filename
Run Code Online (Sandbox Code Playgroud)

但是我被告知姓氏不在group by子句中。但是,如果我按姓,名,文件名分组,则max_filename中的所有内容都与文件名相同。

您能否帮助我了解我在做什么错以及如何使此查询正常工作?

sql t-sql sql-server max aggregate-functions

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