2012-05-03 4 views
1

Я могу немного порыть на синтаксисе SQL, поэтому мне почти невозможно понять это самостоятельно. У меня типичная установка MySQL со следующей таблицей - «история».Столбец графа, а затем группировать два столбца в SQL

userid  ip 
----------- ---------- 
1   123.123.123.123 
1   123.123.123.123  
1   111.111.111.111  
2   213.213.213.213 
2   214.214.214.214 
2   215.215.215.215 
3   163.123.121.123 
4   111.222.121.212 

По существу, я лесозаготовка некоторых вещей под определенным идентификатором пользователя, и какой IP-адрес в настоящее время они используют (наряду с другими вещами, но это не требуется). Однако моя конечная задача, которую я хочу достичь, - создать список для каждого пользователя с количеством используемых IP-адресов. Конечным результатом в этом случае будет.

userid  ipcount 
----------- ---------- 
1   2 
2   3 
3   1 
4   1 

Я знаю, что это было бы возможно каким-то образом, но я совсем новичок в SQL (я был в состоянии получить счет, но не группировать её вниз по идентификатору пользователя). Я мог бы сделать это на PHP в snatch, но это дополнительная перегрузка для сервера (у меня сейчас около 5K записей). SQL был сделан именно для этого ...

Спасибо, ребята. :)

ответ

2
SELECT userid, COUNT(DISTINCT ip) AS ipcount 
    FROM yourtable 
GROUP BY userid 
+0

Ой, ничего себе, это все?!? Вы, ребята, просто потрясающие ... просто прочитайте заявление DISTINCT, и это имеет смысл. Очень ценю вашу помощь! Я так собираю книгу SQL ... –

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