跟进这个已关闭的问题(列出所有电子邮件和 ISP 并获取每个属性的数量),我希望最终能找到我正在寻找的解决方案。
我有一张list_all
如下所示的表:
| EMAIL | PROPERTY | ISP_GROUP | LAST_SENT_DATE |
--------------------------------------------------------------------
| email1 | prop1 | gmail | 2024-06-25 |
| email2 | prop3 | yahoo | 2024-06-02 |
| email3 | prop2 | other | 2024-06-15 |
| email1 | prop5 | gmail | 2024-06-16 |
| email1 | prop6 | gmail | 2024-06-22 |
--------------------------------------------------------------------
我可以运行如下查询来统计某个日期之间每封电子邮件的数量:
SELECT
COUNT(`email`) as 'EMAIL COUNT'
, `email`
, `isp_group`
FROM `list_all`
WHERE `last_sent_date` BETWEEN '2024-06-01' AND '2024-06-30'
GROUP BY `email`, `isp_group`
ORDER BY `EMAIL COUNT` DESC
这将输出如下内容:
| EMAIL COUNT | email | isp_group |
---------------------------------------------------
| 3 | email1 | gmail |
| 1 | email2 | yahoo |
| 1 | email3 | other |
---------------------------------------------------
我正在尝试找到一种方法来显示属性但保留总数。
也许有一种方法可以在另一列中列出每个属性,但将它们全部放在一个单元格中,如下所示:
| EMAIL COUNT | email | isp_group | PROPERTY |
----------------------------------------------------------------
| 3 | email1 | gmail | p1,p2,p3 |
| 1 | email2 | yahoo | p3 |
| 1 | email3 | other | p2 |
----------------------------------------------------------------
如果我能实现上述目标,那可能会解决我的问题。
我不确定这是否可行,但如果可行,请帮我写出来。
谢谢。
GROUP_CONCAT是您正在寻找的函数。
添加
GROUP_CONCAT(property) as property
到您的查询中查看示例