Нужна помощь с запросом

Тема в разделе "Базы данных", создана пользователем Matinier, 15 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Matinier

    Matinier Постоялец

    Регистр.:
    5 окт 2009
    Сообщения:
    65
    Симпатии:
    4
    День добрый!
    Есть таблица:

    m_id | t_id
    -----------
    123 | 79
    222 | 565
    222 | 455
    333 | 897
    333 | 465

    Надо выбрать все записи с уникальными m_id, количество которых больше 1, т.е. получить:

    222
    333
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    select m_id, t_id, count(m_id) as cnt from table where cnt>1 group by m_id
     
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    Код:
    SELECT m_id, COUNT(m_id) count 
    FROM test 
    GROUP BY m_id 
    HAVING count>1
    
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    я бы не рискнул служебные слова использовать в качестве переменных
     
  5. Matinier

    Matinier Постоялец

    Регистр.:
    5 окт 2009
    Сообщения:
    65
    Симпатии:
    4
    Это было первое, что мне на ум пришло...
    Кстати, Вы пробовали этот запрос запустить? Попробуйте, он не работает.
    Сделал через having, т.к. в нем можно агрегатные функции использовать.
     
  6. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    согласен, не работает. тоже писал первое что пришло. рабочий вариант будет таким:

    Код:
    select * from (select m_id, t_id, count(m_id) as cnt from table group by m_id) where cnt>1 
     
Статус темы:
Закрыта.