Dando continuidade a esta pergunta que foi fechada ( Listar todos os e-mails e ISP e obter a contagem de cada PROPRIEDADE ), espero finalmente encontrar a solução que estou procurando.
Tenho uma tabela chamada list_all
que se parece com esta:
| 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 |
--------------------------------------------------------------------
Posso executar uma consulta como esta para obter uma contagem de quantos e-mails de cada tipo existem entre uma determinada data:
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
Isso gerará algo como isto:
| EMAIL COUNT | email | isp_group |
---------------------------------------------------
| 3 | email1 | gmail |
| 1 | email2 | yahoo |
| 1 | email3 | other |
---------------------------------------------------
Estou tentando encontrar uma maneira de mostrar a PROPRIEDADE também, mas manter a contagem total.
Talvez haja uma maneira de listar cada propriedade em outra coluna, mas colocá-las todas em uma célula, assim:
| EMAIL COUNT | email | isp_group | PROPERTY |
----------------------------------------------------------------
| 3 | email1 | gmail | p1,p2,p3 |
| 1 | email2 | yahoo | p3 |
| 1 | email3 | other | p2 |
----------------------------------------------------------------
Se eu puder fazer o que foi dito acima, provavelmente isso resolverá meu problema.
Não tenho certeza se isso é possível, mas se for, por favor me ajude a escrever.
Obrigado.
GROUP_CONCAT é a função que você está procurando.
Adicione
GROUP_CONCAT(property) as property
à sua consultaVeja o exemplo