0 mysql sql database pivot group-by
我想在一个查询中同时做这两个 COUNT,这是最好的方法?我想根据 status_id 计算销售和销售线索
SELECT COUNT(status_id) as Leads FROM activities WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1) AND status_id =5
SELECT COUNT(status_id) as Sales FROM activities WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1) AND status_id =4
Run Code Online (Sandbox Code Playgroud)
我假设您希望能够将两者区分开来,因此请添加status_id到您的SELECT列表中,然后添加到列表中GROUP。
SELECT status_id, COUNT(status_id) as Leads
FROM activities
WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
AND status_id IN (4,5)
GROUP BY status_id;
Run Code Online (Sandbox Code Playgroud)
根据评论编辑:
我想要一个计数选择 status_id 作为潜在客户,另一个选择作为销售。
那么,您实际上是在寻找条件聚合。您问题中的示例数据和所需结果从一开始就使这一点更加清晰。
SELECT
SUM(CASE WHEN status_id = 4 THEN 1 ELSE 0 END) AS Leads,
SUM(CASE WHEN status_id = 5 THEN 1 ELSE 0 END) AS Sales
FROM activities
WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
AND status_id IN (4,5)
GROUP BY status_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |