每个组件中有多少组成总数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每个组件中有多少组成总数相关的知识,希望对你有一定的参考价值。
我需要找出每个组件中有多少组成总数。这将用于制作堆积条形图。
数据看起来像这样。
+----+---------+-------+---------+
| 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 |
+----+---------+-------+---------+
我想知道的是,每个SOURCE
中有多少人构成给定MCODE
的RELATED
计数。
例如,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 |
+-------+-------+
SELECT COALESCE(nullif(source,""),"unknown") AS source_document , COUNT(*) AS num
FROM docs
WHERE related = 43
GROUP BY source_document
ORDER BY num DESC;
+-----------------+-----+
| SOURCE_DOCUMENT | NUM |
+-----------------+-----+
| webform | 2 |
+-----------------+-----+
| unknown | 2 |
+-----------------+-----+
| email | 2 |
+-----------------+-----+
我已经阅读了其他一些帖子,这些帖子表明我可以自己加入表格来获得这个结果吗?不幸的是我的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
请让我知道这对你有没有用。
以上是关于每个组件中有多少组成总数的主要内容,如果未能解决你的问题,请参考以下文章