MySQL:聚合计数
我试图找出有多少公司在某一特定领域有销售业绩。我已经计算了销售条目的数量(5),但我似乎无法按产品类别进行汇总。请参见此简化:MySQL:聚合计数,mysql,sql,select,count,aggregate,Mysql,Sql,Select,Count,Aggregate,我试图找出有多少公司在某一特定领域有销售业绩。我已经计算了销售条目的数量(5),但我似乎无法按产品类别进行汇总。请参见此简化: 目标是让“公司”显示3,因为有三家公司在A段有销售。您可以在计数功能中使用不同的修饰符来获得不同的条目的数量: SELECT COUNT(DISTINCT company) AS companies, -- Here -----^ CASE WHEN segment IN (10, 11, 12, 13, 14, 15, 16) THEN 'Prod
目标是让“公司”显示3,因为有三家公司在A段有销售。您可以在
计数功能中使用不同的修饰符来获得不同的条目的数量:
SELECT COUNT(DISTINCT company) AS companies,
-- Here -----^
CASE
WHEN segment IN (10, 11, 12, 13, 14, 15, 16)
THEN 'Product segment A'
WHEN segment IN (20, 21, 22)
THEN 'Product segment B'
WHEN segment IN (30)
THEN 'Product segment C'
END AS grp, SUM(sales) AS sum_sales
FROM Table1
WHERE
(company LIKE '%ACME%'
OR company LIKE '%HAL%'
OR company LIKE '%GEN%'
)
AND
segment IN (10, 11, 12, 13, 14, 15 ,16, 20, 21, 22, 30)
GROUP BY grp
ORDER BY grp
;
D'oh,当有人能够准确地回答它时,这似乎总是那么容易。太好了,谢谢!
SELECT COUNT(DISTINCT company) AS companies,
-- Here -----^
CASE
WHEN segment IN (10, 11, 12, 13, 14, 15, 16)
THEN 'Product segment A'
WHEN segment IN (20, 21, 22)
THEN 'Product segment B'
WHEN segment IN (30)
THEN 'Product segment C'
END AS grp, SUM(sales) AS sum_sales
FROM Table1
WHERE
(company LIKE '%ACME%'
OR company LIKE '%HAL%'
OR company LIKE '%GEN%'
)
AND
segment IN (10, 11, 12, 13, 14, 15 ,16, 20, 21, 22, 30)
GROUP BY grp
ORDER BY grp
;