Выберите Count of ip и Count DISTINCT ip в том же запросе

У меня есть такая табличная структура:

TABLE NAME : counter id | datetime | url | ip ------------------------------------------- 1 |2013-04-12 13:27:09 | url1 | ip01 2 |2013-04-13 10:55:43 | url2 | ip02 3 |2013-04-14 11:14:12 | url1 | ip03 4 |2013-04-15 23:23:55 | url2 | ip04 5 |2013-05-02 08:34:44 | url1 | ip03 

С помощью интеллектуального запроса SELECT я хочу получить три столбца:

 Отличный URL |  кол-во ip |  количество различных ip
                 |  для каждого отдельного URL |  для каждого отдельного URL-адреса  
 -------------------------------------------------- -----------------
 url1 |  3 |  2    
 url2 |  2 |  2    

Я придумал свой запрос ниже с помощью этого решения в stackoverflow, который дает мне первые 2 столбца, которые мне нужны:

 SELECT url, COUNT(*) AS total_ip FROM counter GROUP BY url ORDER BY total_ip DESC 

Но как добавить третий столбец в мой запрос?

Не могли бы вы мне помочь?

Как вы уже упоминали, вы можете использовать ключевое слово DISTINCT для получения разных URL . Используйте COUNT чтобы получить количество IP и COUNT(DISTINCT ID) чтобы получить отдельный IP для каждого URL

Попробуй это:

 SELECT DISTINCT URL AS D_URL ,COUNT(IP) AS IP ,COUNT(DISTINCT IP) AS D_IP FROM counter GROUP BY URL 

Вывод:

 ╔═══════╦════╦══════╗ ║ D_URL ║ IP ║ D_IP ║ ╠═══════╬════╬══════╣ ║ url1 ║ 3 ║ 2 ║ ║ url2 ║ 2 ║ 2 ║ ╚═══════╩════╩══════╝ 

См. Этот SQLFiddle