mysql - 分组总和汇总

标签 mysql sql mariadb

我有如下的 sql:

select 
count(*), sum(summary.imp), sum(summary.taps) 
from(
   select 
   sum(impressions) as imp, sum(taps) as taps 
   from report 
   where org_id = 1 and report_date between '2019-01-01' and '2019-10-10'
   group by org_id, country, text)
summary;

此查询在 MYSQL 中创建派生的临时表。有没有办法用其他方法解决它?

最佳答案

我读过(但还没有测试过)MySQL 支持不同计数的多个列:

select 
  count(distinct org_id, country, text), sum(impressions) as imp, sum(taps) as taps 
from report 
where org_id = 1 and report_date between '2019-01-01' and '2019-10-10'

我很想知道这是不是真的。我也有理由相信这样的事情会奏效:

select 
  count(distinct concat_ws('###', org_id, country, text)), sum(impressions) as imp, sum(taps) as taps 
from report 
where org_id = 1 and report_date between '2019-01-01' and '2019-10-10'

关于mysql - 分组总和汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58225137/

相关文章:

sql - 如何筛选结果以查找特定的字符串值

sql - 基于 sysdate 的事件

mysql - 简单的MariaDB自定义函数

mysql - 从一个表中选择行,仅连接另一个表的一行

PHP 脚本错误

sql - 将 SQL Server 数据库转换为 MYSQL 数据库

c# - 使用存储过程将值列表插入到 SQL Server 表中

mysql - SQL 显示当年所有周(52)

mysql - MariaDB:选择 val_1、max(value_2)、按 value_3 分组

php - 如何保存用户的过滤条件?