Mysql 每个组件中有多少个组成了总计数
我需要找出每个组件中有多少组成了总计数。这将用于制作堆叠条形图 数据如下所示Mysql 每个组件中有多少个组成了总计数,mysql,sql,Mysql,Sql,我需要找出每个组件中有多少组成了总计数。这将用于制作堆叠条形图 数据如下所示 +----+---------+-------+---------+ | ID | SOURCE | MCODE | RELATED | +----+---------+-------+---------+ | 1 | EMAIL | A | 40 | +----+---------+-------+---------+ | 2 | EMAIL | A | 43 | +
+----+---------+-------+---------+
| ID | SOURCE | MCODE | RELATED |
+----+---------+-------+---------+
| 1 | EMAIL | A | 40 |
+----+---------+-------+---------+
| 2 | EMAIL | A | 43 |
+----+---------+-------+---------+
| 3 | WEBFORM | C | 40 |
+----+---------+-------+---------+
| 4 | | A | 40 |
+----+---------+-------+---------+
| 5 | WEBFORM | B | 43 |
+----+---------+-------+---------+
| 6 | | C | 43 |
+----+---------+-------+---------+
| 7 | | A | 43 |
+----+---------+-------+---------+
| 8 | WEBFORM | D | 43 |
+----+---------+-------+---------+
| 9 | EMAIL | B | 43 |
+----+---------+-------+---------+
| 10 | | D | 42 |
+----+---------+-------+---------+
我想知道的是,对于给定的相关
,每个源
中有多少构成了MCODE
的计数
例如,related=43的结果应为
+-------+---------+-------+
| MCODE | SOURCE | COUNT |
+-------+---------+-------+
| A | EMAIL | 1 |
+-------+---------+-------+
| A | UNKNOWN | 1 |
+-------+---------+-------+
| B | EMAIL | 1 |
+-------+---------+-------+
| B | WEBFORM | 1 |
+-------+---------+-------+
| C | UNKNOWN | 1 |
+-------+---------+-------+
| D | WEBFORM | 1 |
+-------+---------+-------+
这将用于像这样的堆叠条形图
+---+---------+---------+
| A | EMAIL | UNKNOWN |
+---+---------+---------+
| B | EMAIL | WEBFORM |
+---+---------+---------+
| C | UNKNOWN | |
+---+---------+---------+
| D | WEBFORM | |
+---+---------+---------+
我有一些查询可以得到我需要的片段,但我不知道如何组合这些片段来得到最终结果
SELECT mcode, COUNT(mcode) as count
FROM docs
WHERE related = 43
GROUP BY mcode
ORDER By mcode ASC;
+-------+-------+
| MCODE | COUNT |
+-------+-------+
| A | 2 |
+-------+-------+
| B | 2 |
+-------+-------+
| C | 1 |
+-------+-------+
| D | 1 |
+-------+-------+
我读过一些其他的帖子,建议我可以自己加入表格来得到这个结果?不幸的是,我的sql技能没有那么强
这是一张摆弄桌子的桌子和我的问题
试试这个:
SELECT MCODE,
CASE WHEN SOURCE IS NULL THEN 'UNKNOWN'
ELSE SOURCE
END AS SOURCE,
COUNT(RELATED) AS COUNT
FROM TEST
WHERE RELATED = 43
GROUP BY MCODE,SOURCE
ORDER BY 3
让我知道它是否适用于您。SQL Fiddle链接不适用于我。是的,不知道它发生了什么事:-(太棒了。谢谢!“按3点菜”这是怎么回事?3是什么意思?@SportsRacer它的意思是“按第三列点菜”(计数)。如果需要按另一列点菜,请更改它。好的。Cool将其更改为MCODE。谢谢!
SELECT MCODE,
CASE WHEN SOURCE IS NULL THEN 'UNKNOWN'
ELSE SOURCE
END AS SOURCE,
COUNT(RELATED) AS COUNT
FROM TEST
WHERE RELATED = 43
GROUP BY MCODE,SOURCE
ORDER BY 3