Среднее для каждого

Тема в разделе "SQL", создана пользователем slavon-x86, 2 мар 2007.

Наш партнер Genesis Hackspace
  1. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    Есть такая таблица:

    Код (Text):
    -------------------------
    = Зверь = Оценка =
    -------------------------
    = Тигр  = 5       =
    = Бобёр = 2          =
    = Тигр  = 5       =
    = Лис     = 4          =
    = Тигр  = 3       =
    = Тигр  = 2       =
    ...
    ...
    Нужно выыести среднюю оценку каждого. Как это сделать ?
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    0
    Вообще, для вычисления среднего есть функция AVG, если такая поддерживается сервером
     
  3. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    ------------------------
    = user_id = user_ip =
    -------------------------
    = 1 = 10.1.100.1 =
    = 5 = 10.1.100.2 =
    = 1 = 10.1.100.1 =
    = 2 = 10.1.100.2 =
    = 2 = 10.1.100.1 =
    = 2 = 10.1.100.1 =
    ...

    Как для всех уникальных "user_id" посчитать количество уникальных "user_ip" ?
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    0
    Код (Text):
    select user_id, user_ip, count(user_ip)
    from table
    group by user_id, user_ip
     
  5. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    Не работает !

    В первой колонке выводит user_id (не уникальный);
    Во второй колонке выводит user_ip;
    В третьей количество всех user_ip;

    А надо для всех уникальных "user_id" посчитать количество уникальных "user_ip"
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    0
    Т.е. должно быть
    ------------------------
    = user_id = count =
    -------------------------
    = 1 = 1 =
    = 2 = 2 =
    = 5 = 1 =

    ?
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    0
    Ну тогда вроде так:
    Код (Text):
    select unigue.user_id, count(unigue.user_id)
    from
    (
    select distinct user_id, user_ip
    from table
    ) unique
    group by unigue.user_id
     
  8. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    215
    Симпатии:
    0
    Работает, спасибо ! :)

    По идее и так должно работать !
    Код (Text):
    SELECT DISTINCT user_id, COUNT(DISTINCT user_ip) FROM таблица GROUP BY user_id ORDER BY COUNT(DISTINCTuser_ip)
    Но дома (MySQL 5.0.17) работает,
    а закидую на хостинг jino.ru (MySQL: 4.1.14) и не работает !
     
Загрузка...

Поделиться этой страницей