За последние 24 часа нас посетили 16544 программиста и 1569 роботов. Сейчас ищут 875 программистов ...

Вопрос по двойному использованию GROUP BY

Тема в разделе "MySQL", создана пользователем Vladislav_Yushkin, 6 окт 2008.

  1. Vladislav_Yushkin

    Vladislav_Yushkin Активный пользователь

    С нами с:
    19 июн 2007
    Сообщения:
    71
    Симпатии:
    0
    Здравствуйте!
    Подскажите пожалуйста как правильно использовать GROUP BY.

    Есть таблица
    Код (Text):
    1.  
    2. id num
    3. 1  1
    4. 1  2
    5. 1  3
    6. 1  4
    7. 2  2
    8. 2  3
    9. 2  2
    Необходимо определить какое количество раз появляются разные значения num в таблице, но если они встречаются несколько раз с одним id, то засчитывать как одно появление.

    Если написать
    [sql]
    SELECT num, COUNT(*) FROM table1 GROUP BY num
    [/sql]
    то результатом будет
    Код (Text):
    1.  
    2. num count(*)
    3. 1    1
    4. 2    3
    5. 3    2
    6. 4    1
    а нужно чтобы получилось
    Код (Text):
    1.  
    2. num count(*)
    3. 1    1
    4. 2    2
    5. 3    2
    6. 4    1
    если изменить запрос на
    [sql]
    SELECT num, COUNT(*) FROM table1 GROUP BY num,id
    [/sql]
    то вообще не то получается...

    Подскажите пожалуйста.[/sql][/code]
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    [sql]SELECT `num`, COUNT(DISTINCT(`id`)) FROM `table1` GROUP BY `num`[/sql]как-то так
     
  3. Vladislav_Yushkin

    Vladislav_Yushkin Активный пользователь

    С нами с:
    19 июн 2007
    Сообщения:
    71
    Симпатии:
    0