2015-08-18 5 views
1

У меня есть эта таблица:Использование несколько группы, со счетом

+----+-------+------------+ 
| id | name |  date | 
+----+-------+------------+ 
| 1 | name1 | 01/01/2015 | 
+----+-------+------------+ 
| 2 | name1 | 01/01/2015 | 
+----+-------+------------+ 
| 3 | name1 | 01/02/2015 | 
+----+-------+------------+ 
| 4 | name2 | 02/14/2015 | 
+----+-------+------------+ 
| 5 | name2 | 02/16/2015 | 
+----+-------+------------+ 
| 6 | name3 | 02/19/2015 | 
+----+-------+------------+ 

И мне нужна мой запрос, чтобы вернуть это:

+-------+---+ 
| name1 | 2 | 
+-------+---+ 
| name2 | 2 | 
+-------+---+ 

Поэтому в основном мне нужно имя и подсчет вхождений, но 1 день только один раз. Также мне нужны имена, только если число, основанное на предыдущем критерии, выше 1. Пробовал, но результат не тот, который я ожидаю. Я имею в виду, я проверил номера «вручную» и

Select 
    name, count(id) 
From 
    table 
Group By 
    name, date 
Having 
    Count(id) > 1 
+0

Вы хотите посчитать количество различных дат, и все же вы используете 'COUNT (идентификатор)' - почему? – Luaan

+0

@jarlh Потому что один день считается один раз. – fishmong3r

ответ

4
Select 
    name, count(distinct date) 
From 
    table 
Group By 
    name 
Having 
    count(distinct date) > 1 
+0

Насколько это просто. Я совершенно слеп. Спасибо. – fishmong3r

Смежные вопросы