Supposons que j'ai un tableau comme ceci:
Id | url |
---|---|
1 | 11.22.33 |
2 | 11.22.33 |
3 | domain.com |
4 | domain2.com |
5 | domain.com |
6 | 10.100.15 |
7 | domain3.com |
8 | 172.100.15 |
9 | 172.100.15 |
Dans ce tableau, certaines adresses IP sont associées à certains domaines, et nous pouvons considérer qu'il s'agit URL unique. (Par exemple, domain2.com, 10.100.15, 11.22.33 - c'est domain2.com; 172.100.15, domain3.com - domain3.com, etc). Ma tâche est que je dois calculer les lignes avec des domaines différents et faire un tableau comme ceci:
url | le comte |
---|---|
domain2 | 4 |
domaine | 2 |
domain3 | 2 |
Je pouvais les compter avec plusieurs requêtes, telles que:
SELECT COUNT(*)
FROM table1
WHERE (table1.url = “10.100.15”
OR table1.url = “11.22.33” OR table1.url = “domain2.com”)
et faire de ce tableau à la main, mais c'est pas cool.
Comment pourrais-je le faire en une seule requête?
PS: comme mentionné dans le commentaire ci-dessous, d'habitude agrégation pourrait être fait avec une simple requête:
SELECT url, count(*)
FROM table1
WHERE GROUP BY url
Mais il me donne seulement la table comme ceci:
URL | le comte |
---|---|
domain2 | 1 |
domaine | 2 |
11.22.33 | 2 |
10.100.15 | 1 |
Ou ai-je raté quelque chose?